0
ように私は型コンストラクタとデータコンストラクタを次ていますタイプの署名機能
data Compose f g x = MkCompose (f (g x))
は、作曲についてのプレリュードで型シグネチャを取得し、それが示しています
MkCompose :: f (g x) -> Compose f g x
それは関数のように示しているのはなぜ?
私は、次のようなタイプを適用すると:
*ComposeExercise> :t MkCompose [[42]]
MkCompose [[42]] :: Num x => Compose [] [] x
を次に私にとって、それは明らかです。あなたが書く
これが最も一般的な署名であるためです。 'MkCompose'がコンストラクタであることを覚えておいてください。 2番目の例では、パラメータはすでに入力されています。 –
ここでは、正確にどのような問題がありますか? 'MkCompose'はコンストラクタです。これは定義による関数です。それについてはっきりとはっきりしないものは何ですか? – AJFarmar
Aha。私はとても愚かです。なぜそれが関数f(g x) - > Compose f g x'として示されるのかは明らかではなかった。 –