나는 scheme을 처음 사용하고 있습니다. 이것은 MIT의 SICP 과정의 코드 샘플입니다.이 Scheme 코드를 라켓으로 변환하는 방법
(define (+ x y)
(if (= x 0)
y
(+ (-1+ x) (1+ y))))
어떻게 이것을 라켓 코드로 변환합니까? DrRacket을 코드 실행에 사용하고 있기 때문에 라켓으로 변환하고 싶습니다. 그것은 지금까지는 작동했지만 구성표의 증가 연산자에 대해 불평했다. 내가 할
오류는 다음과 같습니다
http://www.youtube.com/watch?v=dlbMuv-jix8&t=1325
을 쓸 수 있습니까? '# lang' 기반 언어 (예를 들어,'#lang racket')를 사용하면, 언어에서 나온'+'와 같은 프리미티브를 재정의 할 수 있습니다. 학생용 언어를 사용하는 경우 더 나은 오류보고를 제공하기 위해 귀하를 제한 할 것입니다. –
이전에는 학생용 언어와 R5RS를 사용했습니다. '#lang scheme '지시어를 추가 했으므로'Check Syntax '를 클릭하면 더 이상 첫 번째 오류가 발생하지 않습니다. 하지만 실행할 때'(+ 2 3)'나는 오류 다음 얻을 : ".. 평가 스레드가 더 이상 실행되지, 그래서 평가는 다음 실행 때까지 실행할 수 없습니다 이 프로그램은 메모리가 부족합니다" 내부 '+'와 충돌 할 수 있습니다. 댓글 : DrRacket 5.2.1을 사용하고 있습니다. 내 파일 이름은 peano3입니다.rkt와 나는 "소스로부터 언어 결정"설정을 가지고있다. – ikhthiandor
"#lang scheme"은 오래된 하위 호환 언어입니다. 아마도'#lang racket'을 사용하기를 원할 것입니다. 메모리 부족을 너무 낮게 설정했거나 프로그램에 버그 (예 : 무한 루프)가있어이 오류가 발생했기 때문입니다. –