問題タブ [pointfree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
397 参照

haskell - ファンクションポイントを無料で書き込もうとすると、GHCIは承認しません

演習として、プレリュードの興味深い部分を手動で実装しようとしています。ポイントフリーになる機会を見つけたときはいつでもそれを取ります。しかし、これは私を最もありそうもない場所のレンガの壁に導きました。このコードの使用:

を実装しようとしていますnotElem。これが私の試みです:

タイプが一致しないため、当然のことながら爆発します。これは簡単に修正できます。

ただし、引数xとyの明示的な宣言は醜く不必要に感じるので、ポイントフリースタイルに戻そうとしています。

失敗する

十分に公平ですが、タイプはまだ一致していません。しかし、どのように修正しますか?再びあなたはまっすぐにジャンプすることができます

これは機能しますが、危険なほど円を描くことに近いようです。私は、議論の1つを排除することが可能であることを発見しました:

しかし、その厄介なxはまだ残っています。どうすればそれを排除できますか?

0 投票する
5 に答える
623 参照

haskell - ポイントフリースタイルで関数を書くための一般的なスキームは何ですか?

私は現在、 20 の中級 Haskell 演習に取り組んでいますが、これは非常に楽しい演習です。Functorこれには、型クラスand Monad(およびFunctors とs を引数として取る関数)のさまざまなインスタンスを実装する必要がありますが、andMonadのようなかわいらしい名前を付けて、実行していることを偽装します (興味深いコードを作成します)。FurryMisty

私はこれのいくつかをポイントフリー スタイルで実行しようとしてきましたが、ポイントフル (?) 定義をポイントフリー定義に変換するための一般的なスキームがあるかどうか疑問に思いました。たとえば、 の型クラスは次のとおりですMisty

(関数unicornbananareturn>>=であり、明らかでない場合に備えて)、これがapple( に相当するflip ap)の実装です。

演習の後半ではliftMliftM2などのバージョンを実装します。私の解決策は次のとおりです。

さて、 (またはbanana1と同等) の適切な定義により、無意味なスタイルで実装することができました。しかし、他の 3 つの関数では、パラメーターを使用する必要がありました。liftMfmapappleTurnover

私の質問は次のとおりです。これらのような定義を無意味な定義に変えるためのレシピはありますか?

0 投票する
3 に答える
1501 参照

haskell - 無意味な書き方 fx = gxx

Haskellを学んでいます。非常に基本的な質問をして申し訳ありませんが、答えが見つからないようです。によって定義された関数 f があります。

ここで、g は既に定義されている 2 つの引数の関数です。この無意味なスタイルをどのように書くのですか? 編集:ラムダ式を使用せずに。

ありがとう

0 投票する
5 に答える
3035 参照

python - Python でのポイントフリー関数の組み合わせ

私はいくつかの述語を持っています、例えば:

次のようにそれらを論理的に結合したい:

問題は次のとおりです。このような組み合わせは、次のような無意味なスタイルで記述できますか?

もちろん、ラムダ関数の真偽値はTrueandandor短絡演算子であるため、これは望ましい効果をもたらしません。私が思いついた最も近いものは、メソッドを実装して持つ単純Pな述語コンテナーであるクラスを定義し、述語を結合することでした。の定義は次のとおりです。__call__()and_()or_()P

P次のような述語の組み合わせである新しい述語を作成できるようになりました。

これは上記のラムダ関数と同等です。これは私が望んでいるものに近づきますが、無意味でもありません (ポイントは、引数ではなく述語そのものになりました)。2番目の質問は次のとおりですP。(ラムダ)関数を使用せずにクラスのようなクラスを使用するよりも、Pythonで述語を結合するためのより良いまたはより短い方法(おそらく括弧とドットなし)はありますか?

0 投票する
1 に答える
309 参照

f# - f# シーケンス式ポイントを自由に書く

私はポイントフリーで書くことについて学んでおり、これに遭遇するまで物事は順調に進んでいました:

この:

シーケンスビルダーを通過する方法がわかりません...これは可能ですか?

usings も正しく機能することを確認する必要があります。

参考までに: ここでポイントフリー プログラミングを使用するのは無意味に思えるかもしれません。これは私にとって学習演習であることを理解してください。

更新: これは、2 番目の関数に対する私の最初の試みです。ただし、シーケンス参照を削除する必要がありました。

0 投票する
1 に答える
230 参照

haskell - テンプレートHaskellのポイントフリースタイル

次のテンプレートHaskell関数を考えてみましょう。

方程式の右辺からラムダ式を削除し、composeQポイントフリースタイルを使用して書き込むことは可能ですか?

0 投票する
1 に答える
1092 参照

haskell - 可変長構成関数?

可変関数合成関数を書こうとしています。これは基本的に(.)、2 番目の引数関数が可変長であることを除いてです。これにより、次のような式が可能になります。

あるいは単に

IncoherentInstances現在、最初の引数関数に非多態性のインスタンスを追加して必要とする場合、私が到達したものは機能します。

何か案は?それは可能ですか?

0 投票する
5 に答える
324 参照

haskell - Haskell でのリストの連結

任意のタイプの 2 つのリストを取り、1 つを返す関数 (つまりf:: [[a]] -> [[a]] -> [[a]]) が必要です。基本的に、2 つの入力リストの「連結」も生成します。

例えば

私は現在、これまでのところそれを持っています:

しかし、これは考慮されておらず、xss間違っています。助言がありますか?

0 投票する
1 に答える
223 参照

haskell - 関数 a → b を「モナディック」関数 a → mb として使用する

私は現在、Haskellの基本をいじっていて、次の「ユースケース」に出くわしました:

したがって、ここでは基本的にモナド関数と純粋な関数を混合し、それらをモナド関数に構成しています。これはうまくreturn . (*10)いきますが、 は一般的に必要なもののように思えますmonadify = (return.)

その前に、そのような状況に対処するヘルパーがすでに存在するかどうかを尋ねたいと思います. もちろん、私は全体について混乱する可能性もあり、これを行うべきではない理由もあります. もしそうなら、教えてください。