여기까지 제가 지금까지 가지고있는 것이지만 오류가 있기 때문에 실행할 수 없습니다. 작동하는지 모르겠으므로 자체 스택을 만들려고합니다. 개체를 DrRacket에서 개체 지향 프로그래밍을 사용하여, 나는 그들이 제대로 호출하는 경우 가지고있는 다른 프로 시저를 호출하는 디스패치 방법을 사용하고 있습니다. 예를 들어 먼저 스택을 만든 다음 스택으로 밀어 넣고 팝업하여 인쇄 할 수 있습니다.DrRacket에서 내 스택 객체를 구현하려고 시도했습니다.
(define (make-stack)
(define my-stack '())
(define (pop)
(define (pop-helper my-stack)
(let ((result (car my-stack))))
(set! my-stack (cdr my-stack))
result)
(pop-helper my-stack))
(define (push)
(define (push-helper x my-stack)
(set! my-stack (cons x my-stack)))
(push-helper x my-stack))
(define (empty?)
(define (empty-helper my-stack)
(if (null? my-stack) #t
#f))
(empty-helper my-stack))
(define (print)
(define (print-helper my-stack)
(if (empty?) '()
(print (cdr my-stack))))
(print-helper my-stack))
(define (dispatch method)
(cond
((eq? method 'pop) pop)
((eq? method 'push) push)
((eq? method 'print) print)
(else (lambda() (display "Unknown Request: ")(display method)(newline)))))
dispatch)
미리 감사드립니다.
무엇이 오류입니까? –