`когда` зарезервированное слово в эрланге - PullRequest
4 голосов
/ 10 ноября 2010

Я начал сегодня утром, пытаясь понять, для чего используется выражение «когда» в эрланге.Я знаю, что приведенный ниже пример неверен:

do_larger() ->
    io:format("Larger~n").

do_smaller() ->
    io:format("Smaller~n").


when_version(Size) ->
    when Size > 10 -> do_larger(),
    when Size < 10 -> do_smaller().

Я решил взглянуть на его реализацию в Haskell, чтобы посмотреть, поможет ли это, и в итоге запутался еще больше.

Кто-нибудь можетуказать мне на учебник (или объяснить мне), для чего используется оператор when и как он используется в haskell и / или erlang?

1 Ответ

17 голосов
/ 10 ноября 2010

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

when_version(Size) when Size > 10 -> 
    do_larger();
when_version(Size) when Size < 10 -> 
    do_smaller().

См. Защитные последовательности и Синтаксис объявления функции в справочнике.

Для учебного пособия прочитайте Охрана, Охрана! в Изучите немного Эрланга для хорошего блага , который является отличным интерактивным учебником Эрланга, кстати.

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