접미사 접미사로 변환 할 일련의 표현식이 있고 DrRacket에서 나를 위해이 프로그램을 작성하려고 할 것이라고 생각했습니다. (10 (1 2 3 +) ^)
과 같이 복잡한 것 중 일부가 붙어 있습니다.접두사에 라켓 접미어
(1 2 \*)
→ (\* 1 2)
의 경우 매우 간단합니다. 이 표현식을 목록으로 설정했고 cdr/car 및 recursion을 사용하여이를 수행해야한다는 것을 알고 있습니다.하지만 그 부분이 내가 붙어있는 곳입니다.
입력 내용은 '(1 2 +)
의 내용을 따릅니다.
나는 그런 '(1 2 +)
같은 간단한 것들을 가지고 더 복잡한 물건
(define ans '())
(define (post-pre lst)
(set! ans (list (last lst) (first lst) (second lst))))
나는이 (실패한가 제대로 작동하려면) 한 : 때문에
분명히(define ans '())
(define (post-pre-comp lst)
(cond [(pair? (car lst)) (post-pre-comp (car lst))]
[(pair? (cdr lst)) (post-pre-comp (cdr lst))]
[else (set! ans (list (last lst) (first lst) (second lst)))]))
I가 넘어지고 있어요 (cdr lst)
는 대부분 한 쌍을 리턴합니다. 나는 else 구문의 구조가 잘못되었다고 추측하며 list
대신 cons
이 필요하지만이 경우 제대로 작동하는 방법을 모르겠습니다.
'(1, 2, "*", ")"목록 요소가'(1 2 *)'에 대해 목록으로 도착합니까? – MondKin