Erlang - 案例建设

时间:2010-09-21 16:33:21

标签: erlang

我是Erlang的新手,我尝试了一些Erlang构造。 我的程序应该是这样的:

if x == 42:
    print "Hi"
else:
    print "Hello"

这是我在Erlang中的代码

-module(tested).
-export([main/0]).

main() ->
  {ok, X} = io:fread("","~d"),
  case X == 42 of
    true -> io:fwrite("Hi\n");
    false -> io:fwrite("Hello\n")
  end.

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

使用{ok, [X]} = io:fread("","~d")X周围的括号)。

fread返回一个列表作为元组的第二个元素(如果您正在读取多个令牌,这是有意义的),因此您需要先从列表中获取该元素,然后才能对其进行比较到42

请注意,不是在==的结果上进行模式匹配,而是可以简单地在X本身上进行模式匹配,即:

case X of
  42 -> io:fwrite("Hi\n");
  _ -> io:fwrite("Hello\n")
end.