내 함수는 첫 번째 요소 인 기본 사례 만 반환합니다. 어쩌면 내가 내 재귀를 잘못하고 어쩌면 내가 lisp에서 함수에 대한 도움이 필요합니다.목록의 첫 번째 항목 만 반환하는 Scheme의 재귀 함수
함수는 10 진수로 변환 된 2 진수 목록의 모든 요소의 합계를 반환해야합니다. 목록의 각 요소를 소수 첫째 자리로 변환 한 다음 나머지가 전환 될 때 추가합니다. 나는 2 가지 기능을 가지고있다. 물론 첫 번째 작품, convertToBinary :
(define (binaryToDecimal n)
(cond [(zero? n) 0]
[else (+ (* 2 (binaryToDecimal (quotient n 10)))
(remainder n 10))]
))
하지 너무 잘 두 번째 :이 가진 함수를 호출 할 경우
(define (addBinary binaryList)
(cond [(null? (cdr '(binaryList))) (binaryToDecimal (car binaryList))]
[else
(cons (+ (binaryToDecimal (car binaryList))
(addBinary (cdr '(binaryList)))))]
))
이 : 그럼
(addBinary '(1101 111 10 101))
를 내가 얻을 : 13. 어떤 1101 (내 목록의 첫 번째 요소)의 10 진수 변환입니다. 분명히 문제는 다른 상황에있는 것 같지만 문제가 보이지 않고 도움이 필요합니다. 나는 주변을 검색하고 "죄수"를 사용하여 적용된 변경 사항이있는 목록의 요소를 구성 (그렇게 말하기) 할 것이라고 읽었습니다. 이것이 맞는지 확실하지 않습니다. 감사!
아 하! 그것은 그것을 고쳤다! 고마워요. 백만 장자입니다. 나는 머리를 벽에 치고 (문자 그대로는 아님) 한시간 동안 그것을 알아 내려고 노력했습니다. 그것은 어리석은 무언가 일 때 나를 죽인다;) –