startsWith.js 850 B

123456789101112131415161718192021222324252627282930313233
  1. import _curry2 from "./internal/_curry2.js";
  2. import equals from "./equals.js";
  3. import take from "./take.js";
  4. /**
  5. * Checks if a list starts with the provided sublist.
  6. *
  7. * Similarly, checks if a string starts with the provided substring.
  8. *
  9. * @func
  10. * @memberOf R
  11. * @since v0.24.0
  12. * @category List
  13. * @sig [a] -> [a] -> Boolean
  14. * @sig String -> String -> Boolean
  15. * @param {*} prefix
  16. * @param {*} list
  17. * @return {Boolean}
  18. * @see R.endsWith
  19. * @example
  20. *
  21. * R.startsWith('a', 'abc') //=> true
  22. * R.startsWith('b', 'abc') //=> false
  23. * R.startsWith(['a'], ['a', 'b', 'c']) //=> true
  24. * R.startsWith(['b'], ['a', 'b', 'c']) //=> false
  25. */
  26. var startsWith =
  27. /*#__PURE__*/
  28. _curry2(function (prefix, list) {
  29. return equals(take(prefix.length, list), prefix);
  30. });
  31. export default startsWith;