2017-10-26 5 views
3

안녕하세요, 저는 얼랭에 관한 초보자입니다. 튜플 목록에서 튜플을 추출하고 변수에 할당하려고합니다. 이 데이터 집합을 고려하십시오.Erlang - 튜플 목록에서 튜플을 추출하십시오.

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

예를 들어, 나는 등등 VAR1 같은과에 {0,25075,-2}을 할당 할.

테스트를 위해 쉘에서 다음을 시도했습니다.

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

하지만이 오류가 발생합니다.

도움을 주시면 감사하겠습니다.

답변

4

셸에서 이미 변수에 값을 할당 한 경우 다시 사용하기 전에 변수를 지워야합니다. 모든 현재 변수를 지우려면 f(). 명령을 사용하고 Var1 만 지우려면 f(Var1).을 지우십시오.

둘째, 구문이 잘못되었습니다. 그것은해야한다 : 당신은하지만, 매우 자주 목록을 통해이 같은 과제를하지 않을

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은 언어로서 당신이 만날 가능성이 가장 적은 가장 작고 복잡한 것 중 하나입니다. * 매치 *, * 재귀 * 및 * 목록 작업 *이 자연스럽게 마음에 들게되면 갑자기 다른 언어의 모든 비속 한 광기와 구문이 계속 진행될 것입니다. (그리고 다른 언어를 사용할 때 정말 귀찮을 것입니다. 동안...). 배우는 것을 즐긴다! – zxq9

관련 문제