缺少参数的中缀运算符

Infix operator with missing argument

Haskell 是否可以让运算符(中缀函数)处理缺少的参数? (更像是 - 表示减法或负号)

例如,我有这个运算符:

data1 <*> data2

如果省略第一个参数,是否可以让它使用默认值?

<*> data2

不是,不是。另一方面,您完全可以定义一个提供默认参数的不同操作,例如

withDef data2 = {- your default value -} <*> data2

如果您真的想使用一个本来可以作为运算符的名称,您仍然可以使用运算符名称来命名这个部分应用的函数:

($<*>) data2 = {- default value -} <*> data2

它可以用作前缀,如 ($<*>) data2,或带有适当 GHC 扩展的后缀,如 (data2 $<*>)。括号不是可选的。