版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

45 строки
1.6 KiB

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.getTraversableComposition = exports.sequence = exports.traverse = void 0;
  4. var Foldable_1 = require("./Foldable");
  5. var function_1 = require("./function");
  6. var Functor_1 = require("./Functor");
  7. function traverse(T, G) {
  8. return function (F) {
  9. var traverseT = T.traverse(F);
  10. var traverseG = G.traverse(F);
  11. return function (f) { return function (fga) { return traverseT(fga, function (ga) { return traverseG(ga, f); }); }; };
  12. };
  13. }
  14. exports.traverse = traverse;
  15. function sequence(T, G) {
  16. return function (F) {
  17. var sequenceT = T.sequence(F);
  18. var sequenceG = G.sequence(F);
  19. return function (fgha) { return sequenceT(T.map(fgha, sequenceG)); };
  20. };
  21. }
  22. exports.sequence = sequence;
  23. /** @deprecated */
  24. function getTraversableComposition(F, G) {
  25. var map = (0, Functor_1.getFunctorComposition)(F, G).map;
  26. var FC = (0, Foldable_1.getFoldableComposition)(F, G);
  27. var _traverse = traverse(F, G);
  28. var _sequence = sequence(F, G);
  29. return {
  30. map: map,
  31. reduce: FC.reduce,
  32. foldMap: FC.foldMap,
  33. reduceRight: FC.reduceRight,
  34. traverse: function (H) {
  35. var traverseH = _traverse(H);
  36. return function (fga, f) { return (0, function_1.pipe)(fga, traverseH(f)); };
  37. },
  38. sequence: function (H) {
  39. var sequenceH = _sequence(H);
  40. return function (fgha) { return (0, function_1.pipe)(fgha, sequenceH); };
  41. }
  42. };
  43. }
  44. exports.getTraversableComposition = getTraversableComposition;