저는 "The Little Schemer"제 4 판을 읽고 있습니다. 초기 연습은 목록에 주어진 값의 오른쪽에 값을 삽입하는 함수 insertR
을 만드는 것입니다. 이 책은 결국 다음과 같은 정의에 도착 :cond 문에서 불필요한 것을 제거 하시겠습니까?
(define insertR
(lambda (new old lat)
(cond
((null? lat) (quote()))
(else (cond
((eq? (car lat) old)
(cons old
(cons new (cdr lat))))
(else (cons (car lat)
(insertR new old
(cdr lat)))))))))
내 자신의 정의는 다음과 같이 보았다 :
(define insertR
(lambda (new old lat)
(cond
((null? lat) (quote()))
((eq? (car lat) old) (cons old (cons new (cdr lat))))
(else (cons (car lat) (insertR new old (cdr lat)))))))
그들은 동일?
나는 수색 엔진 중 하나에서 당신의 제목 (_ 다음과 같은 기능이 해당 _)을 검색 할 사람이 없다고 생각합니다 ... 개선 할 수 없습니까? – gdoron
예, 당신 말이 맞습니다. 나는 그것을 희망이 있 더 나은 무언가에 바꿨다, 그것을 바꿀 자유롭게 느낀다. –
어쨌든, gdoron의 힌트가 그의 열매를 줬습니다. 나는 지금 Little Schemer를 읽고 똑같은 것을 발견 한 사람을 찾았습니다. :) 그러나 누군가 다른 사람이 말했듯이 41 페이지에서 저자는 이런 종류의 단순화를 권장하는 것 같습니다. . –