問題タブ [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.
haskell - ファンクションポイントを無料で書き込もうとすると、GHCIは承認しません
演習として、プレリュードの興味深い部分を手動で実装しようとしています。ポイントフリーになる機会を見つけたときはいつでもそれを取ります。しかし、これは私を最もありそうもない場所のレンガの壁に導きました。このコードの使用:
を実装しようとしていますnotElem
。これが私の試みです:
タイプが一致しないため、当然のことながら爆発します。これは簡単に修正できます。
ただし、引数xとyの明示的な宣言は醜く不必要に感じるので、ポイントフリースタイルに戻そうとしています。
失敗する
十分に公平ですが、タイプはまだ一致していません。しかし、どのように修正しますか?再びあなたはまっすぐにジャンプすることができます
これは機能しますが、危険なほど円を描くことに近いようです。私は、議論の1つを排除することが可能であることを発見しました:
しかし、その厄介なxはまだ残っています。どうすればそれを排除できますか?
haskell - ポイントフリースタイルで関数を書くための一般的なスキームは何ですか?
私は現在、 20 の中級 Haskell 演習に取り組んでいますが、これは非常に楽しい演習です。Functor
これには、型クラスand Monad
(およびFunctor
s とs を引数として取る関数)のさまざまなインスタンスを実装する必要がありますが、andMonad
のようなかわいらしい名前を付けて、実行していることを偽装します (興味深いコードを作成します)。Furry
Misty
私はこれのいくつかをポイントフリー スタイルで実行しようとしてきましたが、ポイントフル (?) 定義をポイントフリー定義に変換するための一般的なスキームがあるかどうか疑問に思いました。たとえば、 の型クラスは次のとおりですMisty
。
(関数unicorn
とbanana
はreturn
と>>=
であり、明らかでない場合に備えて)、これがapple
( に相当するflip ap
)の実装です。
演習の後半ではliftM
、liftM2
などのバージョンを実装します。私の解決策は次のとおりです。
さて、 (またはbanana1
と同等) の適切な定義により、無意味なスタイルで実装することができました。しかし、他の 3 つの関数では、パラメーターを使用する必要がありました。liftM
fmap
appleTurnover
私の質問は次のとおりです。これらのような定義を無意味な定義に変えるためのレシピはありますか?
haskell - 無意味な書き方 fx = gxx
Haskellを学んでいます。非常に基本的な質問をして申し訳ありませんが、答えが見つからないようです。によって定義された関数 f があります。
ここで、g は既に定義されている 2 つの引数の関数です。この無意味なスタイルをどのように書くのですか? 編集:ラムダ式を使用せずに。
ありがとう
python - Python でのポイントフリー関数の組み合わせ
私はいくつかの述語を持っています、例えば:
次のようにそれらを論理的に結合したい:
問題は次のとおりです。このような組み合わせは、次のような無意味なスタイルで記述できますか?
もちろん、ラムダ関数の真偽値はTrue
andand
とor
短絡演算子であるため、これは望ましい効果をもたらしません。私が思いついた最も近いものは、メソッドを実装して持つ単純P
な述語コンテナーであるクラスを定義し、述語を結合することでした。の定義は次のとおりです。__call__()
and_()
or_()
P
P
次のような述語の組み合わせである新しい述語を作成できるようになりました。
これは上記のラムダ関数と同等です。これは私が望んでいるものに近づきますが、無意味でもありません (ポイントは、引数ではなく述語そのものになりました)。2番目の質問は次のとおりですP
。(ラムダ)関数を使用せずにクラスのようなクラスを使用するよりも、Pythonで述語を結合するためのより良いまたはより短い方法(おそらく括弧とドットなし)はありますか?
f# - f# シーケンス式ポイントを自由に書く
私はポイントフリーで書くことについて学んでおり、これに遭遇するまで物事は順調に進んでいました:
この:
シーケンスビルダーを通過する方法がわかりません...これは可能ですか?
usings も正しく機能することを確認する必要があります。
参考までに: ここでポイントフリー プログラミングを使用するのは無意味に思えるかもしれません。これは私にとって学習演習であることを理解してください。
更新: これは、2 番目の関数に対する私の最初の試みです。ただし、シーケンス参照を削除する必要がありました。
haskell - テンプレートHaskellのポイントフリースタイル
次のテンプレートHaskell関数を考えてみましょう。
方程式の右辺からラムダ式を削除し、composeQ
ポイントフリースタイルを使用して書き込むことは可能ですか?
haskell - 可変長構成関数?
可変関数合成関数を書こうとしています。これは基本的に(.)
、2 番目の引数関数が可変長であることを除いてです。これにより、次のような式が可能になります。
あるいは単に
IncoherentInstances
現在、最初の引数関数に非多態性のインスタンスを追加して必要とする場合、私が到達したものは機能します。
何か案は?それは可能ですか?
haskell - Haskell でのリストの連結
任意のタイプの 2 つのリストを取り、1 つを返す関数 (つまりf:: [[a]] -> [[a]] -> [[a]]
) が必要です。基本的に、2 つの入力リストの「連結」も生成します。
例えば
私は現在、これまでのところそれを持っています:
しかし、これは考慮されておらず、xss
間違っています。助言がありますか?
haskell - 関数 a → b を「モナディック」関数 a → mb として使用する
私は現在、Haskellの基本をいじっていて、次の「ユースケース」に出くわしました:
したがって、ここでは基本的にモナド関数と純粋な関数を混合し、それらをモナド関数に構成しています。これはうまくreturn . (*10)
いきますが、 は一般的に必要なもののように思えますmonadify = (return.)
。
その前に、そのような状況に対処するヘルパーがすでに存在するかどうかを尋ねたいと思います. もちろん、私は全体について混乱する可能性もあり、これを行うべきではない理由もあります. もしそうなら、教えてください。