하나 '라는 이름하자'를 사용하여 다음과 같은 기능을 사용하여 숫자의 목록을 얻을 수 있습니다 :
(define (getDigits n)
(let loop ((ol '()) ; start with an empty outlist
(n n))
(let-values (((q r) (quotient/remainder n 10)))
(if (= q 0) (cons r ol)
(loop (cons r ol) q)))))
그런 다음 홀수를 사용하여 필터를 적용 할 수 있습니까? 기능은 모든 요소를 추가 적용 '적용'다음 '+'와 기능을 목록 - 모든 홀수 요소를 얻을하기 :
(apply + (filter
(lambda(x)
(odd? x))
digitList))
함께 전체 기능을 할 수 있습니다 다음
(define (addOddDigits N)
(define (getDigits n)
(let loop ((ol '())
(n n))
(let-values (((q r) (quotient/remainder n 10)))
(if (= q 0) (cons r ol)
(loop (cons r ol) q)))))
(define digitList (getDigits N))
(println digitList)
(apply + (filter
(lambda(x)
(odd? x))
digitList)))
테스트 :
(addOddDigits 156)
출력 :
'(1 5 6)
6