2011-11-12 12 views
0

Erlangシェルでは、変数をうまく再利用できます。 Erlangシェルではなく、Erlangコードで変数を再利用する

 
1> R = "muzaaya". 
"muzaaya" 
2> f(R). 
ok 
3> R = "muzaaya2". 
"muzaaya2" 
この関数が属するモジュールがわからないので、 f(Variable)を私のソースコードに呼び出すことはできません。私は次のようなモジュールを試しました: erlangshellc、e.t.c誰もシェルの中だけでなく、Erlangのソースコードで変数を再利用しようとしましたか?どのようにしましたか?おかげで

答えて

3

REPLシェルが解釈され、コードファイルがコンパイルされます。 シェルはテストのために便利ですが、シェルにWebサーバーを書き込むことはありません。 ;-)

Erlangハッカーがf(V)言語構成を実装することは可能であり、困難でもありませんが、Erlang設計モデルには適合しません。 変数を忘れることなく機能することはできないため、新しいネイティブ言語構造で行う必要がありました。 ErlangはJVMとあまり変わらないかなり普通のスタックマシンで実行されるため、コンパイルすると仮想マシンは変数を認識しなくなります。

他方が既にFを指摘したように一方が可変V.

4

いいえ、モジュール内でこれを行うことはできません。

2

help()と入力すると表示される関数です。シェル内のシェル関数のみであり、Erlangのプログラミング時には使用できません。 f()は関数の1つです。

2

を再バインドすることができれば、それだけ(関数型プログラミングではない)は、シェルコマンドであり、唯一のシェルに存在します。 Erlangで何かをする唯一の方法は、関数を呼び出すことなので、f()とその他のシェルコマンドは、通常の関数呼び出しのように見えます。シェルは新しい構文を導入しません。すべてのシェルコマンドは、常に値を返すという点で通常の関数と同じように動作します。

通常の関数でf()を使用できる必要はないと思われますが、変数の一度しか拘束されないことが不必要に制限されていることが多くあります。

関連する問題