как иметь несколько одноразовых аргументов - PullRequest
1 голос
/ 12 марта 2019

Я знаю, что обычно есть такие функции, как

f _ [] = Nothing
f a (x:xs) = ...

в Haskell кажется идиоматичным, что _ - это одноразовое имя параметра.

Что, если у меня есть партии, которые меня не волнуют? Э.Г.

g _ _ [] _     = Nothing
g a _ (x:xs) b = ...

- это то, что я хотел бы написать, но я не думаю, что у меня может быть несколько _ в одном определении.

Так что же мне делать, если я не забочусь о многих из них?

1 Ответ

11 голосов
/ 12 марта 2019

Вы можете определенно иметь более одного подчеркивания в одной и той же функции.Так как они не назначены никаким значениям, они не будут ничего переопределять.

Их также легче читать, поскольку вы знаете, что значение не имеет значения, и вы можете обратить внимание на то, что на самом деле способствуетк результату.Кроме того, если вы включите все предупреждения при компиляции, вы фактически получите ошибку, если не используете аргумент с именем:

g a b = b

вернет Warning: Defined but not used: 'a'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...