5 Matching Annotations
  1. Oct 2021
    1. Another option is the use the functional library Ramda, while the syntax may be a bit different from the Ruby and Pure JS version, I find it to be more declarive: list = [null, "say", "kenglish", "co", null] R.reject(R.isNil, list) // return new array [ 'say', 'kenglish', 'co' ]
  2. Aug 2018
    1. 但是这可能会使调试变得更麻烦

      暂时还看不出来

    2. var sortUserTasks = R.compose(R.map(R.sortBy(R.prop("dueDate"))), activeByUser);

      从后往前看,从里往外看: activeByUser 处理数据返回的结果,传给 R.prop("dueDate") 函数——提取其中的 dueDate 属性的值的列表——再进行默认排序(R.sortBy)。 需要注意的是:R.map 是用于将里面包裹的函数用于对 activeByUser 返回的数据列表每个元素进行处理的。

    3. 注意到有什么不同了吗?这里没有提到任务列表。Ramda 代码只给我们函数(没有给数据参数)。

      尚未带入数据的函数可以进行任意组合,已经带入数据的函数可能已经得到结果,不能再组合——Ramda 的特点就在于,它是先函数参数,后数据参数,这意味着你能在组合各种功能函数获得最终所需要的函数后,再带入数据参数,获得最终的结果。

    1. `prop` takes two arguments. If I just give it one, I get a function back

      类似于偏函数