簡體   English   中英

Haskell在CoffeeScript中的$(函數應用程序運算符)?

[英]Haskell's $ (function application operator) in CoffeeScript?

在CoffeeScript中,是否存在類似於Haskell的$運算符的概念? 我似乎無法找到關於這個主題的任何內容,但我相信我曾經在GitHub上看到過一個問題。

我想做的就是寫

foo = bar $ baz 1 2

代替

foo = bar (baz 1 2)

看起來你可能會對Haskell中$的確有些混淆。

從你的類型可以看出 - (a -> b) -> a -> b - $只知道“知道”兩個參數。

因此,在你的foo = bar $ baz 1 2例子中, $並不“知道”關於baz 1 2

分組發生的原因是因為“函數應用程序具有比任何中綴運算符更高的優先級”( 源代碼 )。 所以使用中綴運算符的表達式相同. 例如,解析方式完全相同:

foo = bar . baz 1 2  -- also parsed as `bar (baz 1 2)`
                     --   because of function application's high precedence

因此, $唯一的做法是采用兩個參數並將第一個應用於第二個。 只要Coffeescript允許高階函數,實現$就很簡單。 您注意到的其余行為是Haskell語言的一部分。

閱讀上面發布的GitHub問題,似乎已經多次爭論不休了。 然而,沒有任何結論,但似乎不會包括它。

一個人, alexkg ,在他自己的CoffeeScript 分支中實現了這個功能,命名運算符<-

暫無
暫無

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

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