我可以在数据构造函数中使用函数吗?喜欢:
data Something = (a->b) Something1 Something2
Run Code Online (Sandbox Code Playgroud)
fuz*_*fuz 12
是的,当然可以.唯一重要的是你(总是)需要一个数据构造函数的名称:
data <name> <para0> <param1> ... = <constructor> <arg0> <arg1> <arg2> ...
Run Code Online (Sandbox Code Playgroud)
因此,对于我们的例子,它变成了
data Something a b = Constructor (a -> b) Something1 Something2
Run Code Online (Sandbox Code Playgroud)
在命名构造函数时要遵循一些规则.
但是你可以在数据定义中使用函数
data Something a b = Something (a->b) a b
Run Code Online (Sandbox Code Playgroud)