问题描述
给出此功能(顺便说一句,我应该说它是按情况定义的吗??我怎么指代这样定义的功能?),
f :: Int -> Int -> Int
f 0 x = x
f x _ = x
我在徘徊是什么原因,如果存在,为什么我不能这样写:
f :: Int -> Int -> Int
f 0 x = x
f = const
Equations for ‘f’ have different numbers of arguments
在我看来似乎很明显,因为f = const
与f
与接受两个参数(或任意数量的argumnts,fwiw)并不兼容;好吧,所有函数都接受一个参数并返回一个函数,对吗?)。
解决方法
没有根本原因不能做到这一点。但这使语言复杂化,没有令人信服的理由。