缺少参数的中缀运算符
Infix operator with missing argument
Haskell 是否可以让运算符(中缀函数)处理缺少的参数? (更像是 -
表示减法或负号)
例如,我有这个运算符:
data1 <*> data2
如果省略第一个参数,是否可以让它使用默认值?
<*> data2
不是,不是。另一方面,您完全可以定义一个提供默认参数的不同操作,例如
withDef data2 = {- your default value -} <*> data2
如果您真的想使用一个本来可以作为运算符的名称,您仍然可以使用运算符名称来命名这个部分应用的函数:
($<*>) data2 = {- default value -} <*> data2
它可以用作前缀,如 ($<*>) data2
,或带有适当 GHC 扩展的后缀,如 (data2 $<*>)
。括号不是可选的。
Haskell 是否可以让运算符(中缀函数)处理缺少的参数? (更像是 -
表示减法或负号)
例如,我有这个运算符:
data1 <*> data2
如果省略第一个参数,是否可以让它使用默认值?
<*> data2
不是,不是。另一方面,您完全可以定义一个提供默认参数的不同操作,例如
withDef data2 = {- your default value -} <*> data2
如果您真的想使用一个本来可以作为运算符的名称,您仍然可以使用运算符名称来命名这个部分应用的函数:
($<*>) data2 = {- default value -} <*> data2
它可以用作前缀,如 ($<*>) data2
,或带有适当 GHC 扩展的后缀,如 (data2 $<*>)
。括号不是可选的。