【发布时间】:2018-11-20 03:52:11
【问题描述】:
在 JavaScript 中,Promises 有一个名为then 的方法,用于在成功的情况下将结果解包,例如,
fetch("google.com").then(console.log)
从this Haskell's tutorial,我也发现了一个类似的东西,比如叫fmap,
fmap putStrLn (fetch "google.com")
它们看起来很相似,但我不确定它们是否等效。这就是为什么我想问他们是否是同一件事。
PS:等价这个词应该是 Curry-Howard Correspondence 的等价词。
【问题讨论】:
-
如果你去新老师,不要想起老老师。
-
@WongJiaHau 如果您能像 Curry 和 Howard 定义他们对“等价”的使用一样谨慎地定义您对“等价”的使用,我将很乐意尝试回答您的问题。
-
您的 Haskell 代码看起来不对 - 我确定应该是
fetch "google.com" >>= putStrLn -
不,它们在 Curry-Howard 意义上并不等价:事实上,无论是组合类型还是直觉隐含逻辑,它们都不是格式良好的术语。
标签: javascript haskell functional-programming