>source

쌍 목록에서 요소를 재귀 적으로 반복적으로 반환하는 함수를 작성하려고합니다. 쌍의 목록 (연결 목록), 값이 목록에서 쌍의 첫 번째 요소와 일치하면 쌍의 두 번째 요소를 반환해야합니다. 그렇지 않으면 값이 일치하지 않으면 오류를 반환합니다. 예를 들어 SearchPair ([{k, v}], k). V.

여기에 내가 시도한 것입니다. 튜플을 추가하고 어떻게 되돌릴 수 있는지 모르겠습니다.

searchpair([], _) -> error;
   searchpair([[K, V] | Rest], Search) when V= Search -> K;
   searchpair([_ | Rest], Search) -> seachPair(Rest, Search).

  • 답변 # 1

    당신은 필요하지 않습니다언제, 당신은 그를 묶을 수 있습니다케이직접:

    searchpair([], _) ->    error;
    searchpair([{K,V} | _Rest], K) ->    V;
    searchpair([_T | Rest], Search) ->    searchpair(Rest, Search).
    

    또한 튜플이 목록이 아닙니다. 또한 기능 이름은 대소 문자를 구분합니다.

  • 이전 c : PRINTF를 사용하여 (서명 된) 길게 긴 정수를 어떻게 포맷합니까?
  • 다음 XML에서 문자열의 세 번째 위치를 변경하는 방법 (하위 문자열 사용)