簡體   English   中英

Haskell到Javascript Lamba函數的翻譯

[英]Haskell to Javascript Lamba function translation

我在haskell中有以下lambda函數:

cup size = \\message -> message size

我想知道JavaScript中的等效版本是什么(出於學習目的),目前我編寫了以下版本,如果正確,我想知道。

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

您的JavaScript代碼對應於

cup = \size -> (\message -> message) size

在Haskell。 因為\\message -> message是身份函數,所以這與

cup = \size -> size

這又是身份功能:

cup = id

正確的翻譯是

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

要么

function cup(size) { return message => message(size); }

您的haskell lambda接受一個參數,然后返回一個lambda,后者又接受一個函數作為參數,並將該函數與指定給cup的參數一起應用。

在javascript中,等效項是這樣的:

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

您可以不用括號將其重寫:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM