私はHaskellで次の機能を持っています
agreeLen :: (Eq a) => [a] -> [a] -> Int
agreeLen x y = length $ takeWhile (\(a,b) -> a == b) (zip x y)
私は、「慣用的な」Haskell の書き方を学ぼうとしています。これは、括弧の代わりに.
andを使用すること$
を好み、可能な場合はポイントフリー コードを好むようです。明示的x
に言及することを取り除くことができないようです。y
何か案は?
2つの引数の関数を無意味にすることで同じ問題が発生すると思います。
ところで、これは良いコードを書くことを追求しているだけです。「無意味にするために必要なものは何でも使用する」という宿題の練習ではありません。
ありがとう。
(コメントを追加) 回答ありがとうございます。あなたは、この関数がポイントフリーの恩恵を受けていないことを私に確信させました。また、式の変換を練習するための素晴らしい例もいくつか教えてくれました。私にはまだ難しく、C へのポインターと同じくらい Haskell に不可欠なようです。