2014-04-10 4 views
1

나는 기능 프로그래밍에 익숙하지 않다. 특히 내가 사용하고있는 프로그래밍 언어 인 Scheme을 처음 사용한다. 나는 여전히 Scheme의 주요 개념을 파악하려고 노력 중이다.목록 수정하기

내가하려고하는 것은 Scheme에서 두 개의 문자 (a와 b, 말)와 문자열 쌍의 목록을 취하는 함수를 작성하는 것입니다. 예를 들어 '("one" "two") ("three" "four") ("five" "six")을 입력으로 사용하고 목록의 각 문자열 쌍에 대한 수정 된 문자열 쌍 목록을 반환합니다. 그래서 기본적으로, 첫 번째 문자열 앞에 a를 추가하고 두 번째 문자열 앞에 b를 입력해야합니다. a와 b는 입력으로받은 문자입니다. 여기

는 I를 달성하는 것을 시도하고, 입력/출력 예이다

입력 :

(modify-list-pair-of-strings "a" "b" '(("one" "two")("three" "four")("five" "six"))) 

출력 :

'(("aone" "btwo")("athree" "bfour")("afive" "bsix")) 

아닌데 이것을 구현하는 방법에 대해 알아보십시오. 나는 자동차, 죄수, cdr 등과 같은 일반적인 목록 작업을 사용할 수 있다는 것을 알고 있지만 매우 혼란 스럽습니다.

답변

1
(define (modify-list-pair-of-strings a b lst) 
    (map (lambda (x) 
     (list (string-append a (car x)) 
       (string-append b (cadr x)))) 
     lst)) 
여기

의 Runnable 샘플 : http://eval.ironscheme.net/?id=132

보다 역동적 예 :

(define (modify-list-pair-of-strings pre lst) 
    (map (lambda (x) 
     (map string-append pre x)) 
     lst)) 

(modify-list-pair-of-strings 
'("a" "b" "c") 
'(("one" "two" "three")("three" "four" "five")("five" "six" "seven")))