|
|
1
1
此函数只能接受数字:
但是,如果这些数字都包含在一个函数中呢? (即包含一个值的事物;下面示例中的数组)
这显然不是我们想要的。 您可以“提升”函数,以便它可以“提取”每个参数/函数的值:
很明显,数组可以保存多个值,并与一个提升函数结合使用,该函数知道如何提取每个函数的值,现在可以这样做:
如果你这样做了,基本上你会得到:
请注意,每个数组的长度不必相同:
因此,要回答您的问题:如果您打算运行一个具有不同值集的函数,那么提升该函数可能是一个需要考虑的有用的事情:
相同:
|
|
|
2
2
当前答案中没有提到的是
例如,我们可以重用
函数作为应用类型:
可选类型(发送至
异步类型(调度到
…还有更多。这里的要点是,任何能够支持接口和任何应用类型的预期规则的东西都可以使用通用函数,例如
1。论证顺序
|
|
|
3
2
函数编程是一个很长的数学主题,尤其是 the part dealing with monads 和 cathegory theory in general . 但值得一看, here is a funny introduction with pictures . 简而言之,电梯需要 n元 函数并生成一个函数 n 包裹值 产生另一个结果 包装价值 . 这个 包装价值 是一个实用的 Functor 从现在开始,我称之为应用性。 也许你从这一点开始失去了兴趣,但我们之前的某个人在这个问题上已经失去了兴趣, finally he survived and published it as an answer to this question . 让我们看看他看到了什么… …
他看到了梦幻之地
所以,等等…javascript中的数组有一个映射…
然后数组是一个函数,map将一个函数应用于它的所有值,返回另一个具有相同数值的函数。 但是什么是 ap 怎么办?
让我们试着用它做点什么。
ap方法获取一个函数数组(或其他应用程序),并将其应用于值的应用程序,以生成另一个应用程序展平。 方法的签名解释了这一点
最后,电梯是做什么的? 电梯的功能 n 参数,并生成另一个函数 n 副词 产生一个扁平的 补语的 结果。 在这种情况下,我们的应用程序是数组。
这些 包装纸 (应用程序、函数、monad)很有趣,因为它们可以是实现这些方法的任何东西。在haskell中,这用于包装不安全的操作,如输入/输出。它也可以是错误包装器或树,甚至是任何数据结构。 |
|
4
1
基本上,它采用笛卡尔积,并对每个数组应用一个函数。
|