問題タブ [polyvariadic]
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 - 連想二項演算で要素を連鎖させる
私は中級者ですが、haskell の初心者に過ぎません。これが私の問題です:
連想二項演算があるとします(>>=)
。p
そのような多変量関数はありp (>>=) h g f e = h >>= g >>= f >>= e
ますか?
この質問は、二項演算が同じタイプの入力を受け取る場合に可能であると述べているため、この質問をしています。これは一般化できるのだろうか。
EDIT-1: http://okmij.org/ftp/Haskell/vararg-fn.lhs (可変型引数の可変数のセクション) のコードを変更しようとしていますが、ほとんど進展がありません。
EDIT-2: コードを少し単純化します。
haskell - 引数の数が異なる Haskell 関数
この関数をさまざまな数の引数で動作させるために、クラスを使用して Haskell 関数を作成しようとしています。
この関数を ghci で試すと、次の結果が得られます。
エラーの場所と、多変量関数が 2 つ以上の引数で機能しない理由がわかりません。
私のエラーがどこから来たのか知っていますか?関数を任意の数の引数で動作させる方法は?
haskell - haskell の多変量関数の結果の型
Haskell で多変量関数を勉強しているときに、次の SO の質問に出くわしました。
そして、可変数の文字列を取り、それらを単一の文字列に連結/マージする関数を実装して、試してみることにしました。
これは、少なくとも 1 つの文字列引数を指定して merge を呼び出し、最終型を指定すると、これまでのところ機能します。
final 型を省略すると、エラーが発生します。つまり、次をコンパイルします。
結果は
たとえば、エラーメッセージは簡単に思いつくことができるので、完全に理にかなっています。
単一bar
の文字列ではなく、1 つの文字列を受け取って返す関数に変換します。
結果の型が型でなければならないことを Haskell に伝える方法はありString
ますか? たとえば、明示的に定義せずText.Printf.printf "hello world"
に型に評価されます。String