版博士V2.0程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

24 lines
752 B

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.fanin = exports.splitChoice = exports.fanIn = exports.split = void 0;
  4. var function_1 = require("./function");
  5. function split(P, C) {
  6. return function (pab, pcd) { return C.compose(P.right(pcd), P.left(pab)); };
  7. }
  8. exports.split = split;
  9. function fanIn(P, C) {
  10. var splitPC = split(P, C);
  11. return function (pac, pbc) {
  12. return C.compose(P.promap(C.id(), function (cc) { return (cc._tag === 'Left' ? cc.left : cc.right); }, function_1.identity), splitPC(pac, pbc));
  13. };
  14. }
  15. exports.fanIn = fanIn;
  16. function splitChoice(F) {
  17. return split(F, F);
  18. }
  19. exports.splitChoice = splitChoice;
  20. function fanin(F) {
  21. return fanIn(F, F);
  22. }
  23. exports.fanin = fanin;