版博士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.

internal.js 3.3 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. "use strict";
  2. var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
  3. if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
  4. if (ar || !(i in from)) {
  5. if (!ar) ar = Array.prototype.slice.call(from, 0, i);
  6. ar[i] = from[i];
  7. }
  8. }
  9. return to.concat(ar || Array.prototype.slice.call(from));
  10. };
  11. Object.defineProperty(exports, "__esModule", { value: true });
  12. exports.fromReadonlyNonEmptyArray = exports.has = exports.emptyRecord = exports.emptyReadonlyArray = exports.tail = exports.head = exports.isNonEmpty = exports.singleton = exports.right = exports.left = exports.isRight = exports.isLeft = exports.some = exports.none = exports.isSome = exports.isNone = void 0;
  13. // -------------------------------------------------------------------------------------
  14. // Option
  15. // -------------------------------------------------------------------------------------
  16. /** @internal */
  17. var isNone = function (fa) { return fa._tag === 'None'; };
  18. exports.isNone = isNone;
  19. /** @internal */
  20. var isSome = function (fa) { return fa._tag === 'Some'; };
  21. exports.isSome = isSome;
  22. /** @internal */
  23. exports.none = { _tag: 'None' };
  24. /** @internal */
  25. var some = function (a) { return ({ _tag: 'Some', value: a }); };
  26. exports.some = some;
  27. // -------------------------------------------------------------------------------------
  28. // Either
  29. // -------------------------------------------------------------------------------------
  30. /** @internal */
  31. var isLeft = function (ma) { return ma._tag === 'Left'; };
  32. exports.isLeft = isLeft;
  33. /** @internal */
  34. var isRight = function (ma) { return ma._tag === 'Right'; };
  35. exports.isRight = isRight;
  36. /** @internal */
  37. var left = function (e) { return ({ _tag: 'Left', left: e }); };
  38. exports.left = left;
  39. /** @internal */
  40. var right = function (a) { return ({ _tag: 'Right', right: a }); };
  41. exports.right = right;
  42. // -------------------------------------------------------------------------------------
  43. // ReadonlyNonEmptyArray
  44. // -------------------------------------------------------------------------------------
  45. /** @internal */
  46. var singleton = function (a) { return [a]; };
  47. exports.singleton = singleton;
  48. /** @internal */
  49. var isNonEmpty = function (as) { return as.length > 0; };
  50. exports.isNonEmpty = isNonEmpty;
  51. /** @internal */
  52. var head = function (as) { return as[0]; };
  53. exports.head = head;
  54. /** @internal */
  55. var tail = function (as) { return as.slice(1); };
  56. exports.tail = tail;
  57. // -------------------------------------------------------------------------------------
  58. // empty
  59. // -------------------------------------------------------------------------------------
  60. /** @internal */
  61. exports.emptyReadonlyArray = [];
  62. /** @internal */
  63. exports.emptyRecord = {};
  64. // -------------------------------------------------------------------------------------
  65. // Record
  66. // -------------------------------------------------------------------------------------
  67. /** @internal */
  68. exports.has = Object.prototype.hasOwnProperty;
  69. // -------------------------------------------------------------------------------------
  70. // NonEmptyArray
  71. // -------------------------------------------------------------------------------------
  72. /** @internal */
  73. var fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1), true); };
  74. exports.fromReadonlyNonEmptyArray = fromReadonlyNonEmptyArray;