2017-12-13 36 views
0

나는 목록이 '(1 2 3 4)입니다.지도를 사용하여 각 목록 요소를 값으로 뺍니다.

목록의 각 값을 값 (예 : 1)으로 뺍니다.

새 목록 '(0 1 2 3)을 반환하고 싶습니다.


내가 R5RS을 사용하고 있습니다.

map을 사용해 보았지만 실패했습니다.

내 자신의 반복 또는 재귀 알고리즘을 정의하는 데는 map을 사용하고 싶습니다.

(map (lambda (x) (- x value)) data) 

또는 당신은 카레 기능을 사용할 수 있습니다 :이 문제를 해결하기 위해

+0

'map'으로 무엇을 시도하셨습니까? –

답변

3

을 사용하는 것입니다, 그지도

(define (subtract y) (lambda (x) (- x y)))` 

(map (subtract value) data) 
+0

이 솔루션은 내 목적을 위해 작동하지만, 매개 변수가 어떻게 작동하는지 완전히 이해하지는 않습니다. , (yx 빼기)는 두 개의 인수 yx를 취합니다 ... 왜 나는 그것을 '데이터'목록에 전달할 수 있습니까? (map (subtract value) data), map은리스트를 개별 값으로 분해하기 때문일까? – localplutonium

+0

@localplutonium'subtract'는 오직 하나의 인자를 취하고 함수를 생성한다. -'(빼기 42)'는'(lambda (x) x 42))'. – molbdnilo

+0

나는 한동안 계획을 사용하지 않았다 ... 또한 언어도 깊이 공부하지 않았다. 감사합니다. 더 자세히 살펴 보겠습니다. – localplutonium