2015-01-21 4 views
1

방금 ​​erlang을 선택했는데 간단한 문제가 발생했지만 해결할 수 없었습니다. 원자가 주어진리스트에 있는지 검사하는 모듈을 정의하려고합니다. 나는 다음과 같이 erlang 쉘을 통해리스트에 들어갔다 :함수 절이 erlang과 일치하지 않습니다.

veggies : veggieMember ([오이, 토마토, 감자], 토마토). 어쩌면 내가 기초를 오해

일치하는 기능 절을하지만, 여기에 내가 할 노력하고있어 모듈 코드 :

는하지만 항상 예외 오류가 발생하지

-module(veggies). 

-export([veggieMember/2]). 

veggieMember(veggieList,query)-> 
case lists:member(query, veggieList) of 
    true->veggieList; 
    false->[query|veggieList] 
end. 

답변

4

을 시작 얼랑에 바인딩은 대문자. 그래야합니다 :

-module(veggies). 

-export([veggieMember/2]). 

veggieMember(VeggieList,Query)-> 
case lists:member(Query, VeggieList) of 
    true -> VeggieList; 
    false -> [Query|VeggieList] 
end. 

일치하는 함수 절이 없으므로 예제에서 작동하지 않았습니다. 원자 veggieList이 목록 [cucumber,tomato,potato]과 일치하지 않으며 원자 query이 원자 tomato과 일치하지 않습니다.

+0

'에얼랑의 제본은 대문자로 시작됩니다 .' 왜 자본입니까? 자본을 입력하는 것은 shift 키를 누르기위한 추가적인 노력이 필요합니다. –

+2

@Amol Erlang이 구현 될 때 선택되는 구문입니다. 대문자 이름은 변수입니다. 소문자 이름은 원자입니다. –