問題タブ [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.

0 投票する
2 に答える
243 参照

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: コードを少し単純化します。

0 投票する
2 に答える
367 参照

haskell - 引数の数が異なる Haskell 関数

この関数をさまざまな数の引数で動作させるために、クラスを使用して Haskell 関数を作成しようとしています。

この関数を ghci で試すと、次の結果が得られます。

エラーの場所と、多変量関数が 2 つ以上の引数で機能しない理由がわかりません。

私のエラーがどこから来たのか知っていますか?関数を任意の数の引数で動作させる方法は?

0 投票する
2 に答える
208 参照

haskell - haskell の多変量関数の結果の型

Haskell で多変量関数を勉強しているときに、次の SO の質問に出くわしました。

多変量ハスケル関数を作成するには?

Haskell、多変量関数と型推論

そして、可変数の文字列を取り、それらを単一の文字列に連結/マージする関数を実装して、試してみることにしました。

これは、少なくとも 1 つの文字列引数を指定して merge を呼び出し、最終型を指定すると、これまでのところ機能します。

final 型を省略すると、エラーが発生します。つまり、次をコンパイルします。

結果は

たとえば、エラーメッセージは簡単に思いつくことができるので、完全に理にかなっています。

単一barの文字列ではなく、1 つの文字列を受け取って返す関数に変換します。

結果の型が型でなければならないことを Haskell に伝える方法はありStringますか? たとえば、明示的に定義せずText.Printf.printf "hello world"に型に評価されます。String