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

1 год назад
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.getFoldableComposition = exports.toArray = exports.foldM = exports.traverse_ = exports.toReadonlyArray = exports.intercalate = exports.reduceM = exports.reduceRight = exports.foldMap = exports.reduce = void 0;
  4. var function_1 = require("./function");
  5. function reduce(F, G) {
  6. return function (b, f) { return function (fga) { return F.reduce(fga, b, function (b, ga) { return G.reduce(ga, b, f); }); }; };
  7. }
  8. exports.reduce = reduce;
  9. function foldMap(F, G) {
  10. return function (M) {
  11. var foldMapF = F.foldMap(M);
  12. var foldMapG = G.foldMap(M);
  13. return function (f) { return function (fga) { return foldMapF(fga, function (ga) { return foldMapG(ga, f); }); }; };
  14. };
  15. }
  16. exports.foldMap = foldMap;
  17. function reduceRight(F, G) {
  18. return function (b, f) { return function (fga) { return F.reduceRight(fga, b, function (ga, b) { return G.reduceRight(ga, b, f); }); }; };
  19. }
  20. exports.reduceRight = reduceRight;
  21. function reduceM(M, F) {
  22. return function (b, f) { return function (fa) { return F.reduce(fa, M.of(b), function (mb, a) { return M.chain(mb, function (b) { return f(b, a); }); }); }; };
  23. }
  24. exports.reduceM = reduceM;
  25. function intercalate(M, F) {
  26. return function (middle, fm) {
  27. var go = function (_a, x) {
  28. var init = _a.init, acc = _a.acc;
  29. return init ? { init: false, acc: x } : { init: false, acc: M.concat(M.concat(acc, middle), x) };
  30. };
  31. return F.reduce(fm, { init: true, acc: M.empty }, go).acc;
  32. };
  33. }
  34. exports.intercalate = intercalate;
  35. function toReadonlyArray(F) {
  36. return function (fa) {
  37. return F.reduce(fa, [], function (acc, a) {
  38. acc.push(a);
  39. return acc;
  40. });
  41. };
  42. }
  43. exports.toReadonlyArray = toReadonlyArray;
  44. function traverse_(M, F) {
  45. var applyFirst = function (mu, mb) { return M.ap(M.map(mu, function_1.constant), mb); };
  46. var mu = M.of(undefined);
  47. return function (fa, f) { return F.reduce(fa, mu, function (mu, a) { return applyFirst(mu, f(a)); }); };
  48. }
  49. exports.traverse_ = traverse_;
  50. function foldM(M, F) {
  51. return function (fa, b, f) { return F.reduce(fa, M.of(b), function (mb, a) { return M.chain(mb, function (b) { return f(b, a); }); }); };
  52. }
  53. exports.foldM = foldM;
  54. /**
  55. * Use [`toReadonlyArray`](#toreadonlyarray) instead
  56. *
  57. * @category zone of death
  58. * @since 2.8.0
  59. * @deprecated
  60. */
  61. exports.toArray = toReadonlyArray;
  62. /** @deprecated */
  63. function getFoldableComposition(F, G) {
  64. var _reduce = reduce(F, G);
  65. var _foldMap = foldMap(F, G);
  66. var _reduceRight = reduceRight(F, G);
  67. return {
  68. reduce: function (fga, b, f) { return (0, function_1.pipe)(fga, _reduce(b, f)); },
  69. foldMap: function (M) {
  70. var foldMapM = _foldMap(M);
  71. return function (fga, f) { return (0, function_1.pipe)(fga, foldMapM(f)); };
  72. },
  73. reduceRight: function (fga, b, f) { return (0, function_1.pipe)(fga, _reduceRight(b, f)); }
  74. };
  75. }
  76. exports.getFoldableComposition = getFoldableComposition;