CoffeeScript に、Haskell の $ 演算子に似た概念はありますか? この件については何も見つけられないようですが、GitHub で一度問題を見たことがあると思います。
私がやりたいことは、書くことです
foo = bar $ baz 1 2
それ以外の
foo = bar (baz 1 2)
CoffeeScript に、Haskell の $ 演算子に似た概念はありますか? この件については何も見つけられないようですが、GitHub で一度問題を見たことがあると思います。
私がやりたいことは、書くことです
foo = bar $ baz 1 2
それ以外の
foo = bar (baz 1 2)
$
Haskell で正確に何が行われているのか、少し混乱しているようです。
その型からわかるように-- (a -> b) -> a -> b
--$
は 2 つの引数についてのみ「認識」しています。
したがって、あなたのfoo = bar $ baz 1 2
例では、$
について「知っている」わけではありませんbaz 1 2
。
グループ化がこのように行われる理由は、「関数適用はどの中置演算子よりも優先される」ためです ( source )。.
たとえば、中置演算子を使用した同じ式は、まったく同じ方法で解析されます。
foo = bar . baz 1 2 -- also parsed as `bar (baz 1 2)`
-- because of function application's high precedence
したがって、$
2 つの引数を取り、最初の引数を 2 番目の引数に適用するだけです。Coffeescript が高階関数を許可している限り、実装は簡単$
です。お気づきの残りの動作は、Haskell 言語の一部です。
上に投稿された GitHub の問題を読むと、何度も激しく議論されているようです。結論は出ていませんが、入れるものではないようです。
alexkg という1 人の男が、CoffeeScriptの自分のフォークにこの機能を実装し、operator という名前を付けました<-
。