今天早上我开始试着弄清楚“when”语句在Erlang中的作用。我知道下面的例子是错误的:
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条答案
按热度按时间eanckbw91#
Erlang中的
when
是子句的保护。这与Erlang内置的模式匹配有关。您的示例必须是:请参阅参考中的“保护序列”和“函数声明语法”。
对于教程阅读守卫,守卫!在Learn You Some Erlang for Great Good这是一个伟大的在线Erlang教程顺便说一句。