计划快要把我逼疯了。在下面的代码中,我只是试图将提供给 repl 的字符串解析为实际列表。相反,当我打印应该是我的解析列表时,我得到的只是一个正确的 parends 列表!我正在使用以下站点来测试我的代码: http ://repl.it/
我完全希望我的代码能够创建如下列表: (+ 1 2) 或者可能是这样,因为我不是类型在方案中的工作方式。("+" "1" "2")
非常感谢我的列表为何如下所示的任何帮助:())))
(define repl
(lambda (input)
(define symbol_list (Read input))
;(define value (eval symbol_list))
;(myprint value)
;(print (length symbol_list))
(print symbol_list)
)
)
(define Read
(lambda (input)
(define symbol (substring input 0 1))
(cond
((string=? ")" symbol) '())
((or (string=? "(" symbol) (string=? " " symbol))
(Read (substring input 1 (string-length input))))
(else (cons symbol (Read (substring input 1 (string-length input)))))
)
)
)
(repl "(+ 1 2)")