我有数据
LNode(TypedL(2.72489e12,"http://www.w3.org/2001/XMLSchema#double"))
我想要一个匿名函数从此匹配到2.72489e12
myfunc (LNode(TypedL(c, d))) = c
给出
Constructor `TypedL' should have 2 arguments, but has been given 1.
我的这个函数的语法错了吗?
答案 0 :(得分:4)
问题在于您调用函数的方式。在Haskell中,函数和构造函数的调用方式如下:
function arg1 arg2 arg3
所以,当它说它需要两个参数时,就意味着:
myfunc (LNode (TypedL c d)) = c
-- ~~~
元组((a, b, c)
)是不同的数据类型。如果定义它们,它们可以用作函数参数,但这通常被视为单一的Haskell。