我被告知这个函数声明是非法的:
f3 1 (f2 x) 是
我确实理解为什么这是非法的,我认为它与第二个参数(f2 x)有关。谁能给我解释一下?
我被告知这个函数声明是非法的:
f3 1 (f2 x) 是
我确实理解为什么这是非法的,我认为它与第二个参数(f2 x)有关。谁能给我解释一下?
在函数定义中,函数的参数必须是模式,即它们必须是
_
,它匹配所有内容并且不绑定任何内容,var
,它匹配所有内容并将相应的参数绑定到参数,[elem1, elem2, elem3, elem4]
,Con{ field1 = value1, field2 = value2 }
,(pattern)
,(pattern1, pattern2, pattern3)
,var@pattern
整个参数和组件绑定到if 匹配var
的相应部分,或pattern
~pattern
,它绑定了参数resp。它的零件pattern
resp。它的部分,如果参数实际上不匹配,则会导致运行时错误pattern
。(f2 x)
片段中的部分
f3 1 (f2 x) y
不是模式,而是表达式,函数 ( f2
) 应用于值 ( x
),因此函数定义不能具有形式
f3 1 (f2 x) y = whatever
最接近的法律功能定义是
f3 1 (F2 x) y = ...
带有(一元)值构造函数 F2
。