我在haskell中有以下lambda函数:cup size = \message -> message size我想知道什么是JavaScript的等效版本(用于学习目的),目前我写了以下版本,我想如果它是正确的。const cup = size => (message => message)(size)
haskell
lambda
cup size = \message -> message size
const cup = size => (message => message)(size)
wn9m85ua1#
JavaScript代码对应于
cup = \size -> (\message -> message) size
因为\message -> message是恒等函数,所以这与
\message -> message
cup = \size -> size
也是恒等函数
cup = id
正确的翻译应该是
const cup = size => message => message(size)
或
function cup(size) { return message => message(size); }
pxyaymoc2#
你的haskell lambda接受一个参数并返回一个lambda,lambda反过来接受一个函数作为参数,并将该函数与给定的参数应用于cup。在javascript中,其等价形式如下:
const cup = size => (message => message(size))
你可以不用括号重写:
2条答案
按热度按时间wn9m85ua1#
JavaScript代码对应于
因为
\message -> message
是恒等函数,所以这与也是恒等函数
正确的翻译应该是
或
pxyaymoc2#
你的haskell lambda接受一个参数并返回一个lambda,lambda反过来接受一个函数作为参数,并将该函数与给定的参数应用于cup。
在javascript中,其等价形式如下:
你可以不用括号重写: