Haskell到Javascript的Lamba函数转换

Haskell到Javascript的Lamba函数转换,javascript,haskell,Javascript,Haskell,我在haskell中有以下lambda函数: 杯子大小=\message->message大小 我想知道学习JavaScript的等效版本是什么,目前我编写了以下版本,我想知道它是否正确 const cup=size=>message=>messagesize您的haskell lambda接受一个参数并返回一个lambda,该lambda反过来接受一个函数作为参数,并将该函数与给定给cup的参数一起应用 在javascript中,等价物如下所示: const cup = size =>

我在haskell中有以下lambda函数:

杯子大小=\message->message大小

我想知道学习JavaScript的等效版本是什么,目前我编写了以下版本,我想知道它是否正确


const cup=size=>message=>messagesize

您的haskell lambda接受一个参数并返回一个lambda,该lambda反过来接受一个函数作为参数,并将该函数与给定给cup的参数一起应用

在javascript中,等价物如下所示:

const cup = size => (message => message(size))
您可以在不使用括号的情况下重写它:

const cup = size => message => message(size)

haskell lambda接受一个参数并返回一个lambda,该lambda反过来接受一个函数作为参数,并将该函数与给定给cup的参数一起应用

在javascript中,等价物如下所示:

const cup = size => (message => message(size))
您可以在不使用括号的情况下重写它:

const cup = size => message => message(size)

您的JavaScript代码对应于

cup=\size->\message->message size 在哈斯克尔。因为\message->message是标识函数,这与

杯子=\size->size 哪一个又是标识函数:

杯子=id 正确的翻译应该是

const cup=size=>message=>messagesize 或

函数cupsize{return message=>messagesize;}
您的JavaScript代码对应于

cup=\size->\message->message size 在哈斯克尔。因为\message->message是标识函数,这与

杯子=\size->size 哪一个又是标识函数:

杯子=id 正确的翻译应该是

const cup=size=>message=>messagesize 或

函数cupsize{return message=>messagesize;} 消息是一种方法吗?因为如果是的话,我不知道lambda的用法。你可以写cup=message和js cup=str=>messagestr@BercoviciAdrian杯子不是信息;cup是一个函数,它返回一个将其参数应用于cup参数的函数。还可以编写cup size message=messagesize,这使得cup=flip$更为明显。message是一种方法吗?因为如果是的话,我不知道lambda的用法。你可以写cup=message和js cup=str=>messagestr@BercoviciAdrian杯子不是信息;cup是一个函数,它返回一个将其参数应用于cup参数的函数。还可以编写cup size message=messagesize,这使得cup=flip$更为明显。