@harmoniclabs/plu-ts-onchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
27 lines (26 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.psome = void 0;
var type_system_1 = require("../../../type_system/index.js");
var papp_1 = require("../../papp.js");
var pdelay_1 = require("../../pdelay.js");
var pfn_1 = require("../../pfn.js");
var phoist_1 = require("../../phoist.js");
var plam_1 = require("../../plam.js");
var pBool_1 = require("../bool/pBool.js");
var precursiveList_1 = require("./precursiveList/index.js");
function psome(elemsT) {
return (0, phoist_1.phoist)((0, plam_1.plam)((0, type_system_1.lam)(elemsT, type_system_1.bool), (0, type_system_1.lam)((0, type_system_1.list)(elemsT), type_system_1.bool))(function (predicate) {
return (0, precursiveList_1.precursiveList)(type_system_1.bool, elemsT)
.$((0, plam_1.plam)((0, type_system_1.lam)((0, type_system_1.list)(elemsT), type_system_1.bool), (0, type_system_1.delayed)(type_system_1.bool))(function (_self) { return (0, pdelay_1.pdelay)((0, pBool_1.pBool)(false)); }))
.$((0, pfn_1.pfn)([
(0, type_system_1.lam)((0, type_system_1.list)(elemsT), type_system_1.bool),
elemsT,
(0, type_system_1.list)(elemsT)
], type_system_1.bool)(function (self, head, rest) {
return (0, papp_1.papp)(predicate, head).or((0, papp_1.papp)(self, rest));
}));
// .$( _list )
}, "psome"));
}
exports.psome = psome;