2017-10-26 8 views
3

こんにちは私はアーランの初心者です タプルのリストからタプルを抽出して変数に代入しようとしています。 このデータセットを検討してください。Erlang - タプルのリストからタプルを抽出する

[{0,25075,-2},{0,0,-2},{0,376100,-4}] 

たとえば、{0,25075,-2}にはVar1などのように割り当てたいとします。

私はテストのためにシェルで以下を試しました。

Tuples = [{0,25075,-2},{0,0,-2},{0,376100,-4}]. 
{Var1, Var2, Var3} = Tuples. 

ただし、このエラーが発生します。

ご協力いただきありがとうございます。

答えて

4

シェルで変数に値を割り当て済みの場合は、変数をクリアしてから再利用する必要があります。コマンドf().を使用して現在のすべての変数をクリアするか、f(Var1).Var1だけ消去します。

第2に、構文が間違っています。それは次のようになります。あなたは非常に多くの場合、リストの上に、このような割り当てを行うことはありません

1> Tuples = [{0,25075,-2},{0,0,-2},{0,376100,-4}]. 
[{0,25075,-2},{0,0,-2},{0,376100,-4}] 
2> [Var1, Var2, Var3] = Tuples. 
[{0,25075,-2},{0,0,-2},{0,376100,-4}] 
3> Var1. 
{0,25075,-2} 
4> Var2. 
{0,0,-2} 
5> Var3. 
{0,376100,-4} 
6> Var1 = "something else". 
** exception error: no match of right hand side value "something else" 
7> f(Var1). 
ok 
8> Var1 = "something else". 
"something else" 
9> Var1. 
"something else" 

、しかし、通常は、反復および/またはリスト操作を使用します。

+0

ありがとうございました! Erlangは奇妙な言葉です。 – SnellyCat

+2

@SnellyCatあなたが間違った訓練を受けたため、宇宙の冗談としてあなたが今想像しているよりも実際に*道のりが簡単です。 ;-)すべての誠実さの中で、Erlangは言語として、あなたが遭遇する可能性がある最も小さい、最も複雑でないものの1つです。 *一致*、*再帰*、*リスト操作*があなたの心に自然になると、あなたは突然、他の言語のすべての秘密の狂気や文法が起こっているのだろうかと疑問に思うでしょう。ながら...)。学習を楽しくしてください! – zxq9

関連する問題