pan*_*ami 0 erlang syntax-error switch-statement
我在编译以下代码时遇到问题,
2> c(match).
match.erl:13: syntax error before: '{'
match.erl:2: function receiver/0 undefined
error
match.erl
-module(match).
-export([receiver/0]).
receiver() ->
    receive
        {From, A, B} ->
            case A =:= B of
                true ->
                    From ! "true";
                false ->
                    From ! "false"
            end
        {From, A, B, C}->
            case A =:= B =:= C of
                true ->
                    From ! "true";
                false ->
                    From ! "false"
            end
    end.
我已经尝试在比赛前做所有可能的分号,句号,逗号,{From, A, B, C}->似乎没有任何效果.这就是Erlangs的语法噩梦!
请使用模式匹配
-module(match).
-export([receiver/0]).
receiver() ->
    receive
        {From, A, A} ->
                    From ! "true";
        {From, _, _} ->
                    From ! "false";
        {From, A, A, A}->
                    From ! "true";
        {From, _, _, _}->
                    From ! "false"
    end.
或卫兵
-module(match).
-export([receiver/0]).
receiver() ->
    receive
        {From, A, B} when A =:= B ->
                    From ! "true";
        {From, _, _} ->
                    From ! "false";
        {From, A, B, C} when A =:= B andalso A =:= C ->
                    From ! "true";
        {From, _, _, _}->
                    From ! "false"
    end.
或布尔运算符
-module(match).
-export([receiver/0]).
    receiver() ->
        receive
            {From, A, B} ->
                case A =:= B of
                    true ->
                        From ! "true";
                    false ->
                        From ! "false"
                end;
            {From, A, B, C}->
                case A =:= B andalso A =:= C of
                    true ->
                        From ! "true";
                    false ->
                        From ! "false"
                end
        end.
| 归档时间: | 
 | 
| 查看次数: | 193 次 | 
| 最近记录: |