データ コンストラクターで関数を使用できますか? お気に入り:
data Something = (a->b) Something1 Something2
ええ、もちろんできます。唯一の重要なことは、(常に) データ コンストラクターの名前が必要だということです。
data <name> <para0> <param1> ... = <constructor> <arg0> <arg1> <arg2> ...
したがって、この例では、次のようになります。
data Something a b = Constructor (a -> b) Something1 Something2
コンストラクターの命名には、従うべきいくつかのルールがあります。
しかしもちろん、あなたは次のようなデータ定義で関数を持つことができます
data Something a b = Something (a->b) a b