日期:2014-05-16  浏览次数:20696 次

如何像处理数据一样处理代码
问题出自Peter Norvig和Jone McCarthy的对话:

只听Norvig说:“是,John,你有什么问题?”我记不清Lisp之父当时怎么问的了,但不超过十个词,就是问 Python是否能如Lisp那样优雅地像数据一样处理代码。“不,John,不行。”Norvig回答,然后静等麦卡锡继续发问。但是,老人什么也没有再说。

请问什么叫像处理数据一样处理代码,怎么样像处理数据一样处理代码?

如果能推荐一两本书则不胜感激,谢谢。

------解决方案--------------------
证明lambda表达式是图灵完全的,很重要的部分就是证明lambda的不动点定理。这个不动点定理的核心就是把函数本身看做是参数(数据)传进去。这个是整个计算机科学的理论基础,没有这个计算机等于是废物。

这东西稍微看一下转换心情就可以了,开发实在是用不上。
------解决方案--------------------
引用:
问题出自Peter Norvig和Jone McCarthy的对话:

只听Norvig说:“是,John,你有什么问题?”我记不清Lisp之父当时怎么问的了,但不超过十个词,就是问 Python是否能如Lisp那样优雅地像数据一样处理代码。“不,John,不行。”Norvig回答,然后静等麦卡锡继续发问。但是,老人什么也没有再说。

请问什么叫像处理数据一样处理……


原文是说 “gracefully manipulate python code as data", 个人理解应该比较贴近最近比较流行的functional programming的概念和实现或者部分实现这个概念的新语言例如ruby,closure,楼主可以从这个角度了解一下

举个例子, 一个list 可以作为一个数据存储 (“+", "35", "25"), 但是也可以作为一段进行35+25 计算的程序