3

CoffeeScript に、Haskell の $ 演算子に似た概念はありますか? この件については何も見つけられないようですが、GitHub で一度問題を見たことがあると思います。

私がやりたいことは、書くことです

foo = bar $ baz 1 2

それ以外の

foo = bar (baz 1 2)
4

2 に答える 2

1

$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 言語の一部です。

于 2013-10-24T21:29:00.173 に答える
0

上に投稿された GitHub の問題を読むと、何度も激しく議論されているようです。結論は出ていませんが、入れるものではないようです。

alexkg という1 人の男が、CoffeeScriptの自分のフォークにこの機能を実装し、operator という名前を付けました<-

于 2013-10-17T12:20:23.820 に答える