如何有多个一次性参数
how to have multiple throwaway arguments
我知道像
这样的函数很常见
f _ [] = Nothing
f a (x:xs) = ...
在 Haskell 中,_
是一次性参数名称似乎是惯用的。
如果我有很多我不关心的怎么办?例如
g _ _ [] _ = Nothing
g a _ (x:xs) b = ...
是我想写的,但我认为我不能在一个定义中有多个_
。
那么当我不在乎很多的时候怎么办?
你绝对可以在同一个函数中有多个下划线。由于它们未分配任何值,因此不会覆盖任何内容。
它也更易于阅读,因为您知道值是多少并不重要,您可以关注对结果有实际贡献的内容。此外,如果您在编译时启用所有警告,如果您不使用具有名称的参数,您实际上会收到错误消息:
g a b = b
将return一个Warning: Defined but not used: 'a'
我知道像
这样的函数很常见f _ [] = Nothing
f a (x:xs) = ...
在 Haskell 中,_
是一次性参数名称似乎是惯用的。
如果我有很多我不关心的怎么办?例如
g _ _ [] _ = Nothing
g a _ (x:xs) b = ...
是我想写的,但我认为我不能在一个定义中有多个_
。
那么当我不在乎很多的时候怎么办?
你绝对可以在同一个函数中有多个下划线。由于它们未分配任何值,因此不会覆盖任何内容。
它也更易于阅读,因为您知道值是多少并不重要,您可以关注对结果有实际贡献的内容。此外,如果您在编译时启用所有警告,如果您不使用具有名称的参数,您实际上会收到错误消息:
g a b = b
将return一个Warning: Defined but not used: 'a'