[英]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語言的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.