私の質問は、Haskell 型の署名を分析的に扱う方法についてです。具体的にするために、「修正」機能を見ています。
fix :: (a -> a) -> a
そして、ペアノっぽい追加を行うために私が書いたちょっとした作りの関数:
add = \rec a b -> if a == 0 then b else rec (a-1) (b+1)
タイプを調べると、期待されるタイプが得られますfix add
。
fix add :: Integer -> Integer -> Integer
そして、それは私が期待するように動作するようです:
> (fix add) 1 1
2
fix
上記のシグネチャを持つ型シグネチャ forおよび foradd
を使用して表示するにはどうすればよいfix add
ですか? 型シグネチャを扱うための「代数的」ルールとは何ですか? どうすれば「自分の作品を見せる」ことができますか?