問題タブ [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 - Haskellの同じ値のポイントフリースタイルに複数の関数を適用する
ある日退屈して脳を鍛えたかったので、99のHaskell問題をやろうと決心しましたが、ポイントフリースタイルでやることに制限しました。ポイントフリースタイルで作業しているときによく発生する問題は、次のとおりです。各結果を独立したエンティティとして保持しながら、同じ値に複数の関数をどのように適用しますか?先のとがった表記の使用:
そして、私がこれまでにポイントフリー表記で思いついたもの:
x
私はそこの終わりからそれを取り除くことができないようです。
f# - プリミティブを使用して F# でリスト フィルター関数を実装する方法
作者がfoldrと関数構成を使用していくつかのアプリケーションを実装する場合、なぜ関数型プログラミングが重要なのかを読んでいました。私はF#でそれらのいくつかを行いました.例えばmap関数:
次に、リスト フィルター関数を実装したくて行き詰まりました。
ここに何が入るの?関数は、入力としてリスト項目、累積フィルタリングされたリストを取り、述語が false を返す場合は同じリストを返し、true を返す場合は cons:ed リストを返す必要があります。
ここでオプションタイプが必要だと思いますが、物事を接着する方法がわかりません。pred と cons (およびおそらく他のプリミティブ) を使用して関数を構成し、すべての配管を行うカスタム ラムダ関数を作成せずにこれを実現することは可能ですか? これは計算式の場合ですか?
haskell - アプリケーションリライト(Haskell)
Haskellの表現がどのように機能するかを理解していないと、それをより基本的な形に分解するのに役立つことがよくあります。
次の定義を使用する
私は次のように書き直しsequenceA [(+3),(+2)] 3
ました
そしてそれをに変えました(フォーマットを許してください;私は行を分割するための規則が何であるかわかりません)
(\d ->(\c->(\b -> (\a -> (\_ -> (:)) a (+3) a) b (\_ -> (:)) b) c (+2) c) d (\_ -> []) d) 3
手作業で作業する場合は正しいように見えますが、GHCiに受け入れてもらうことはできません。私はここで何を間違えましたか?私の2番目の質問は、この形式から機能合成に変換する方法です。ドットをさまざまな組み合わせで置き換えてみましたが、GHCiはそれらすべてを拒否します。
function - Haskell での暗黙関数合成
mean
次のように定義された関数があるとします。
しかし、私は次のような暗黙の形でそれを望んでいます:
私自身のtacit
関数を構築することなく、これらの行に沿って何かを行う組み込みのHaskellの方法はありますか(このようなもの):
この形式では、関数は次のようになります。
しかし、このような明示的な関数を使用する必要を回避する方法があるように感じます. ちょっと思ったんです; Haskellに組み込まれているこれを行う方法はありますか?
haskell - Haskellでタプルを返すポイントフリー
ポイントフリー関数はタプルを返すことができますか? たとえば、ポイントフリー スタイル (f1、f2、および f3 が定義されている場合) で次のように記述できます。
この場合、私の f1、f2、および f3 は、quot、mod、*、およびいくつかの整数の合成です。
はより一般的なケースであり、
名前付き関数は問題ありませんが、私の例は匿名です。(名前の例は次のようになります)
編集:私は楽しみに興味があるだけです。これを行うつもりはありません。
haskell - 複数の変数を使用した無意味な構成
私はそれに頭を包み始めました。むしろ、1つの出力から1つの入力に値を本質的にパイプできる単純な状況で使用するのが好きです。私が満足している無意味な構成の簡単な例は次のとおりです。
今日 GHCI で遊んでいるときに、 を構成not
し(==)
て複製できるかどうかを確認したかったの(/=)
ですが、実際にはそれを推論できませんでした。(==)
2 つの入力をnot
取り、1 つを取ります。私はこれがうまくいくかもしれないと思った:
Bool
の単一の出力が(==)
に移動すると仮定するとnot
、次のエラーを引用してコンパイルされません。
それが私にとって大きな意味があると言えたらいいのにと思いますが、私が得ているのは、渡された2番目の引数(==)
がnot
? この構成の背後にあるロジックをもう少しよく理解するのを手伝ってくれる人はいますか?
haskell - 無意味にプログラミングする場合、readFileとIOモナド間の連携はありません
countInFile0とcountInFile2にコンパイラエラーがないのに、countInFile1とcountInFile3にコンパイラエラーがあるのはなぜですか。4つすべてが同じものです。
また、countInFile3には、countInFile1にはないこの追加のエラーがあるのはなぜですか。
f# - ポイントフリー関数はインライン化できましたか?
inline
関数を明示的にカリー化することは不可能のようです。mycurried
ということで、ちゃんと呼ばれてinlined
もちゃんと取れないんmyfunction
ですね?inlined
これは、カリー化された関数の欠点の 1 つと見なすことができますか?
haskell - (-1) は負の数と見なされるため、減算の (+1) に相当するものは何ですか?
重複の可能性:
カリー化減算
私はチュートリアルからではない最初の haskell プロジェクトを開始しましたが、もちろん、最も単純なことに出くわしました。
次のコードがあります。
コードがコンパイルされない理由を理解するのに少し時間がかかりました。負の値として認識される (-1) を使用していました。マイナスを括弧で囲んでも、先頭に付けて最初のパラメーターを 1 にするため、役に立ちません。
要するに、これのポイント無料版とは何ですか?
haskell - haskellの高階関数を見つける
リストをそれ自体に圧縮する関数は、次のように定義できます。
これは機能しますが、ポイントフリースタイルで定義したいと思います。これを行うために、私は関数を定義しますdollarize
:
これは機能しますが、明らかに私は自分自身の高階関数を定義したくありません。dollarize
それが存在すると仮定して、の標準的な同等物を見つける方法はありますか?そうでない場合、機能を組み合わせるために存在するこの種の機能はどこにありますか?