常见的lisp中的读取行

4 lisp common-lisp

我想读取STDIN的输入,然后只读它是什么:如果输入是一个列表,那么读取的是一个列表.但是,read-line函数似乎总是返回一个字符串!例如:in clisp interactive envrironment:

(read-line)
Run Code Online (Sandbox Code Playgroud)

我输入:

("(define M ::int )" "(define X ::int )")
Run Code Online (Sandbox Code Playgroud)

它会给我一个字符串:

"(\"(define M ::int )\" \"(define X ::int )\")" ;
Run Code Online (Sandbox Code Playgroud)

我想要的仍然是原始列表: ("(define M ::int )" "(define X ::int )")

那么如何让读取线读入输入的内容呢?

Gal*_*tus 13

尝试简单地:

(read)

这应该工作


小智 2

(let ((a read)))
   (eval a))

(+ 2 2 2)

=> 6
Run Code Online (Sandbox Code Playgroud)

他们将其称为“READ EVAL PRINT LOOP”是有原因的。