私はGHCiで素早く1ライナーを書いていて、マップで合計を作ろうとしました。私は、mapが一般的な型[b]の出力を与えるのに対し、sumは特定の入力Num a => [a]を取るのに対し、失敗した理由を理解しました。しかし、マップ関数の出力がタイプNum b => [b]であると仮定して、このコードには何も問題はありません。 私は規制型宣言がうまくいくかもしれない書き込みを考え(私が推測するが、そ
Haskellの3つの関数、すなわちa、b、およびcを作成したいと思います。 各機能には1つの引数があります。引数は3つの関数のうちの1つです。引数は、関数aを返す関数でaある場合 : 私はこの振る舞いを持っている機能aをしたいと思います。 引数が関数bの場合は、関数bを返します。 引数が関数cの場合は、関数aを返します。ここで は私が機能aのために望む行動の要約です: a a = a
a b
関数合成の手法と長さによって、haskellで複数の書き換えルールが必要なのはなぜですか?これを避ける方法はありますか?次のコードを与え例えば 、... {-# RULES
"f/f" forall a. f (f a) = 4*a
#-}
f a = 2 * a
我々は test2 = f . f $ 1
と ためのルールを追加する必要がありますが、これは test1 =