什么是代码即数据?我听说它优于“ascii字符”,但为什么呢?我个人觉得以代码为数据的哲学实际上有点令人困惑。
我涉猎过Scheme,但是我从来没有真正了解过整个“编码为数据”的东西,想知道这到底是什么意思?
最佳答案
这意味着您编写的程序代码也是可以由程序操纵的数据。采取一个简单的Scheme表达式,例如
(+ 3 (* 6 7))
您可以将其视为一个数学表达式,在求值时会产生一个值。但这也是一个包含三个元素的列表,即
+
,3
和(* 6 7)
。通过引用列表, '(+ 3 (* 6 7))
您告诉方案将其视为后者,即仅包含三个元素的列表。因此,您可以使用程序来操作此列表,然后对其进行评估。它给您带来的力量是巨大的,当您“理解”这个想法时,会有一些很酷的技巧要玩。