UNPKG

@harmoniclabs/plu-ts-onchain

Version:

An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript

24 lines (23 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pmatchList = void 0; var type_system_1 = require("../../../../type_system/index.js"); var list_1 = require("../../../builtins/list/index.js"); var pdelay_1 = require("../../../pdelay.js"); var pfn_1 = require("../../../pfn.js"); var pforce_1 = require("../../../pforce/index.js"); var phoist_1 = require("../../../phoist.js"); var minimal_common_1 = require("../../data/conversion/minimal_common.js"); function pmatchList(returnT, elemsT) { return (0, phoist_1.phoist)((0, pfn_1.pfn)([ (0, type_system_1.delayed)(returnT), (0, type_system_1.fn)([elemsT, (0, type_system_1.list)(elemsT)], returnT), (0, type_system_1.list)(elemsT) ], returnT)(function (matchNil, matchCons, lst) { return (0, pforce_1.pforce)((0, list_1.pstrictChooseList)(elemsT, (0, type_system_1.delayed)(returnT)) .$(lst) .$(matchNil) // caseNil .$((0, pdelay_1.pdelay)((0, minimal_common_1._papp)((0, minimal_common_1._papp)(matchCons, (0, minimal_common_1._papp)((0, list_1.phead)(elemsT), lst)), (0, minimal_common_1._papp)((0, list_1.ptail)(elemsT), lst))))); }, "pmatchList")); } exports.pmatchList = pmatchList;