Erlang - корпусная конструкция - PullRequest
5 голосов
/ 21 сентября 2010

Я новичок в 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 Ответ

4 голосов
/ 21 сентября 2010

Используйте {ok, [X]} = io:fread("","~d") (скобки вокруг X).

fread возвращает список в качестве второго элемента кортежа (что имеет смысл, если вы читаете более одного токена), поэтому вам нужно вывести элемент из списка, прежде чем вы сможете сравнить его с 42.

Обратите внимание, что вместо сопоставления с шаблоном по результату == вы можете просто сопоставить шаблон с самим X, т. Е .:

case X of
  42 -> io:fwrite("Hi\n");
  _ -> io:fwrite("Hello\n")
end.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...