对函数定义的部分使用无点样式
Using point free style for parts of a function definition
给定这个函数(顺便说一句,我应该说它是由案例定义的吗?我如何引用这样定义的函数?),
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
接受两个参数(或任意数量的参数,fwiw;好吧,所有函数都接受一个参数并返回一个函数,对吧?)。
没有做不到的根本原因。但它使语言复杂化,并且没有令人信服的理由去做。
给定这个函数(顺便说一句,我应该说它是由案例定义的吗?我如何引用这样定义的函数?),
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
接受两个参数(或任意数量的参数,fwiw;好吧,所有函数都接受一个参数并返回一个函数,对吧?)。
没有做不到的根本原因。但它使语言复杂化,并且没有令人信服的理由去做。