選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

43 行
1.1 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. // simple utils for working with sequences like Array or string
  6. var checkType = function checkType(val, result) {
  7. return Object.prototype.toString.call(val) === result;
  8. };
  9. var is = exports.is = {
  10. object: function object(val) {
  11. return checkType(val, '[object Object]');
  12. },
  13. array: function array(val) {
  14. return Array.isArray(val);
  15. },
  16. func: function func(val) {
  17. return checkType(val, '[object Function]');
  18. },
  19. string: function string(val) {
  20. return checkType(val, '[object String]');
  21. },
  22. undefined: function undefined(val) {
  23. return typeof val === 'undefined';
  24. }
  25. };
  26. var isSeq = exports.isSeq = function isSeq(seq) {
  27. return is.string(seq) || is.array(seq);
  28. };
  29. var head = exports.head = function head(seq) {
  30. return isSeq(seq) ? seq[0] : null;
  31. };
  32. var first = exports.first = head;
  33. var tail = exports.tail = function tail(seq) {
  34. return isSeq(seq) ? seq.slice(1) : null;
  35. };
  36. var rest = exports.rest = tail;
  37. var last = exports.last = function last(seq) {
  38. return isSeq(seq) ? seq[seq.length - 1] : null;
  39. };