1. ホーム
  2. haskell

[解決済み] Haskellの関数合成(.)と関数応用($)イディオム:正しい使い方

2022-06-10 16:03:37

質問

私が読んでいるのは リアルワールドHaskell を読んでいて、そろそろ終わりに近づいているのですが、スタイルの問題がずっと気になっていました。 (.)($) 演算子を使用します。

他の関数の合成である関数を書くときは、このように書きます。

f = g . h

しかし、それらの関数の末尾に何かを適用する場合、私はこのように書いています。

k = a $ b $ c $ value

しかし、本ではこのように書かれてしまうのです。

k = a . b . c $ value

さて、私にとってこれらは機能的に同等に見え、私の目にはまったく同じことを行っているように見えます。しかし、見れば見るほど、この本で紹介されているような方法で関数を書いている人を見かけます。 (.) で構成し、最後にだけ ($) を使ってロットを評価する値を追加します(誰も多くのドル組成でそんなことはしません)。

を使うよりもずっと良い、ブックの方法を使う理由があるのでしょうか? ($) 記号を使用するよりも優れている理由はありますか?あるいは、私が理解していないベストプラクティスがここにあるのでしょうか?あるいは、それは余計なことであり、私はそれを全く気にするべきではないのでしょうか?

どのように解決するのですか?

権威のある方ならお分かりかと思います。

すべての($)記号を使用するよりもはるかに良いブックの方法を使用する理由があるのですか?

特別な理由はありません。Bryanも私も、行のノイズを減らすことを好んでいます。 . よりも静かで $ . その結果、この本では f . g . h $ x の構文が使用されます。