在这一点上,这对我来说真的只是一个概念性的问题.
在Lisp中,程序是数据,数据是程序.REPL正是这样做 - 读取然后进行评估.
那么如何以安全的方式从用户那里获得输入呢?显然它是可能的 - 我的意思是viaweb - 现在雅虎!商店非常安全,所以它是如何完成的?
在Doug Hoyte的Let Over Lambda的第102页,作者说这是关于他的安全读取字符串函数:
这意味着向量,位向量,gensyms,循环引用,#.,以及所有其余的都出来了.Safe-read-from-string 甚至不允许使用关键字或外包符号.
我正在努力想到关键字符号的邪恶用法让我的大脑紧张.他们是为了方便而被排除在外还是可以用它们来做恶事?