lodash / fp范围的不同行为

时间:2019-03-01 00:01:49

标签: functional-programming lodash

带有lodash/fp的方法_.range()具有两个固定的对数。

基本上,您不能执行_.range(4),但必须这样做_.range(0, 4)。 我想这与功能方法有关。

有人可以向我解释或指出一些有用的资源吗? 或者也许写一个例子来说明使用它的好处。谢谢。

1 个答案:

答案 0 :(得分:1)

由于lodash / fp函数是curried,因此您需要具有固定的arity(函数可以接受的参数数量),这意味着该函数不能具有可选参数)。

注意:lodash(和ramda)使用更宽松的curring版本。在经典的curring中,结果函数一次到达1个参数,直到达到原始arity,然后调用原始函数。例如,对于3-fn(arg)(arg)(arg)。在lodash中,您可以提供多个参数(例如在_.range(0, 4)中),而不是1。因此,如果您有一个Arity为3的函数,则可以使用fn(arg, arg, arg)fn(arg, arg)(arg)或{ {1}},等等...-即将导致3个参数的所有组合。

如果您通常使用fn(arg)(arg)(arg)(固定固定数为1),则可以使用_.range(n)-0调用该函数,而对于lodash / fp函数的管理性质,您可以将会得到一个新函数,期望只包含一个数字,并且将生成一个从_.range(0)到该数字的范围(如标准lodash的范围)。

0
const range0 = _.range(0)

console.log(range0(3))

console.log(range0(1))