任意の数の引数(すべて同じタイプ)を取り、それらを使用して何かを実行し、その後結果を返す関数が必要です。私の特定のケースでは、引数のリストは実用的ではありません。
haskell libsを調べてみると、printf
(モジュールからのText.Printf
)関数が同様のトリックを使用していることがわかりました。残念ながら、ソースを見てもその魔法は理解できませんでした。
誰かがこれを達成する方法、または少なくともいくつかのウェブページ/紙/私がこれについての良い説明を見つけることができるところなら何でも説明できますか?
動機:
私がこれを必要とする理由は本当に非常に単純です。学校(コンピュータサイエンスの授業)では、数式を「記録」して文字列として表現し(独自のデータ型のNum / Realなどのインスタンスを書き込むことにより)、実行できるモジュールを作成する必要があります。その上でさまざまな操作。
このデータ型には、変数の特別なコンストラクターが含まれています。このコンストラクターは、値など、指定された関数で置き換えることができます。目標の1つは、いくつかの変数(型のペア(Char,Rational)
)を持つそのような式を取り、式の結果を計算する関数を作成することです。関数の目的を最もよく表現する方法を検討する必要があります。(私の考え:関数は、関数で定義されている変数とまったく同じ数の引数を取る別の関数を返します-不可能のようです)。