55

私は Erlang を学ぼうとしており、関数やcaseステートメントの行末でいくつかの問題に遭遇しています。

関数またはステートメント内でセミコロン ( ;)、コンマ ( )、またはピリオドを使用するのはいつですか?,case

4

5 に答える 5

57

セミコロンを OR、コンマを AND、ピリオドを END と読むのが好きです。そう

foo(X) when X > 0; X < 7 ->
    Y = X * 2,
    case Y of
        12 -> bar;
        _  -> ook
    end;
foo(0) -> zero.

として読む

foo(X) when X > 0 *OR* X < 7 ->
    Y = X * 2 *AND*
    case Y of
        12 -> bar *OR*
        _  -> ok
    end *OR*
foo(0) -> zero *END*

これにより、 ; がない理由が明確になります。ケースの最後の節の後。

于 2009-07-11T01:05:51.553 に答える
56

通常のコードの行末のコンマ。
case ステートメント、または if ステートメントなどの末尾のセミコロン。最後の case または if ステートメントの末尾には何もありません。関数の終わりのピリオド。

例(ランダム変数名で申し訳ありません。明らかにこれは何もしませんが、ポイントを示しています):

case Something of 
    ok ->
        R = 1,     %% comma, end of a line inside a case 
        T = 2;     %% semi colon, end of a case, but not the end of the last
    error ->
        P = 1,     %% comma, end of a line inside a case
        M = 2      %% nothing, end of the last case
end.               %% period, assuming this is the end of the function, comma if not the end of the function
于 2009-07-10T16:35:53.657 に答える
29

限目 (。)

モジュールでは、ピリオドはモジュール属性と関数宣言 (別名「フォーム」) を終了するために使用されます。フォームは式ではない (フォームから値が返されない) ため、これを覚えておくことができます。したがって、ピリオドはステートメントの終わりを表します。

さまざまなアリティを持つ関数の定義は個別のステートメントと見なされるため、それぞれがピリオドで終了することに注意してください。

たとえば、hello/0およびの関数定義hello/1:

hello() -> hello_world.

hello(Greeting) -> Greeting.

(erlang シェルでは、ピリオドは式の終了と評価に使用されますが、これは例外です。)

セミコロン (;)

セミコロンは、関数句と式分岐の両方で、句区切りとして機能します。

例 1、関数句:

factorial(0) -> 1;
factorial(N) -> N * fac(N-1).

例 2、式の分岐:

if X < 0  -> negative;
   X > 0  -> positive;
   X == 0 -> zero
end

コンマ (、)

コンマは式の区切り記号です。コンマが式の後にある場合は、その句の後に別の式があることを意味します。

hello(Greeting, Name) -> 
    FullGreeting = Greeting ++ ", " ++ Name,
    FullGreeting.
于 2012-12-28T19:36:29.747 に答える
3

コンマは、式、引数、またはリスト/タプルまたはバイナリの要素を区切ります。過労です。

于 2009-07-23T22:33:43.683 に答える
3

英語の句読点のようなものと考えることができます。コンマは一連のものを区切るために使用され、セミコロンは 2 つの非常に密接に関連する独立した節を区切るために使用されます [1] (たとえば、case ステートメントの異なるケース、異なるパターンに一致する同じ名前とアリティの関数節)、およびピリオド。文を終了するために使用されます (完全な思考)。

  1. または、あなたが大学に行ったことを証明するために。「セミコロンは使用しないでください。これらは、服装倒錯者の両性具有であり、何の意味もありません。大学に行ったことを示すだけです。」-- カート・ヴォネガット
于 2009-07-10T16:44:46.543 に答える