9
任意のアリティの関数を定義する私の現在のアプローチは以下の通りです.Aはアキュムレータ、Eは入力引数の型、Rは結果の型です。Haskellで任意のアリティ関数を定義する方法は、0のアリティを含んでいますか?
combine :: A -> E -> A
class X r where
foo :: A -> E -> r
instance X R where
foo :: A -> E -> R
instance X r => X (E -> r) where
foo :: A -> E -> E -> r
foo (a :: A) (x :: E) =
foo (a `combine` e :: A)
doFoo = foo emptyA
しかし、fooというの最小アリティがfooのための最小限のはまだ1です - > E - > R、及びdoFooはEである - 私もdoFooを持っているしたいと思います> R. :: R.どうやって?
うーん...私は今、愚かな気がする!どのようにしてSOの質問を削除できますか? –
あなたはしません。この質問は、他の人にとって有益かもしれません。 – hammar
もう一つの便利なパッケージはquickcheckです。また、可変引数を持つ関数も提供します。 – Masse