当前位置:首页 > 编程笔记 > 正文
已解决

higher-order function in functional programming (JS)

来自网友在路上 156856提问 提问时间:2023-09-20 09:24:13阅读次数: 56

最佳答案 问答题库568位专家为你答疑解惑

1 functional programming该怎么理解?

functions就是values,就像String or Numbers那样,可以构造匿名函数,并把函数赋给某个变量 或者 传递给其他函数(higher-order function)

2 higher-order function有什么好处呢?

可以利用small function来compose into large function,比如最常见的是filter 这个作用在array上的function,它可以接受其他的function来作为argument,这个filter function返回的函数值是:filtered version of the array

不使用filter函数:
在这里插入图片描述
使用filter函数:
在这里插入图片描述

3 为什么上面例子中higher-order function的代码更少呢?

并不是因为写的代码少,而是因为这段代码本身的logic本身就更少,这样的写法允许resue functions,使得能够很容易地compose functions。例子中的filter和判断是否为dog类型的function just slop into each other (slop是描述物体或液体在没有控制或限制的情况下发生混乱、溢出或交错的行为)

上面的代码完全等价于下面:可以看出,这使得判断是否为dog的逻辑完全与数据本身进行了解耦,这个逻辑不再依赖于当前特定的这个animals数据本身了;array对象还有一个与filter相反的对应函数reject,可以直接把isDog函数传入,就可以直接得到所有不是Dog类型的动物对象了
在这里插入图片描述
在这里插入图片描述

来自:YT/watch?v=BMUiFMZr7vk&list=PL0zVEGEvSaeEd9hlmCXrk5yUyqUag-n84的笔记

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"higher-order function in functional programming (JS)":http://eshow365.cn/6-9910-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!