2
ポイントフリーをポイントフルに変換
Haskellハッカーなので、私はポイントフルよりもポイントフリー表記を好みます。残念ながら、一部の人々はポイントフリー表記を読むのが難しいと感じており、私がポイントフルで書くと、正しい数の括弧を得るのが難しいと感じています。ポイントフリーで書かれたコードをポイントフル表記に変換するのを手伝ってください! 約 ポイントフリー表記では、ある関数の出力を別の関数にフィードするためにポイント(そう、本当に)を使用します。たとえば、succ数値を取得して1を加算する関数があり、これを行う代わりに、数値に3を加算する関数を作成したいとします。 \x -> succ(succ(succ(x))) あなたはこれを行うことができます: succ.succ.succ Pointfreeは単一のパラメーターを取る関数でのみ機能します(とにかくこの課題)、関数がそうではなくsucc、add2つの数値を取り、それらを加算する場合、引数が1つだけになるまで引数をフィードする必要があります。 pointful: \x -> add 1(add 1(add 1 x)) pointfree: add 1 . add 1 . add 1 最後に、関数は他の関数を引数として取ることができます: Pointfree: map (f a . f b) . id Pointful: \x -> map (\x -> f a (f b x)) (id x) Javascript …