11 2013 档案

摘要:先约定几个记号: 定义用一个冒号加等号表示“:=”, 表达式全等用两个等号表示“==”, 归约意义上的相等用一个等号表示“=”,“==”蕴涵“=”。 由于lambda演算不能定义符号,所以像这样的递归定义是不能被求值的: f := (lambda () (f))如何在lambda验算中实现递归?从最简单的递归函数开始。希望能带来一些启发。寻找 \(\Omega... 阅读全文
posted @ 2013-11-16 11:25 古霜卡比 阅读(1174) 评论(3) 推荐(0) 编辑
摘要:默认作用域前段时间学了下Lua,发现Lua的默认作用域和Python是相反的。Lua定义变量时默认变量的作用域是全局(global,这样说不是很准确,Lua在执行x = 1这样的语句时会从当前环境开始一层层往上查找x,只有在找不到x的情况下才定义全局变量)的,而Python定义变量时默认变量的作用域是局部(local)的(当前块)。另外,Lua可以再定义变量时在变量前加上local关键字来定义局部变量,而Python没有类似的关键字,Python的变量只能定义在当前块中。我们知道,全局变量是不好的,而局部变量是好的,写程序应该尽量使用局部变量。所以一开始时我觉得Python的这种约定比较好,它 阅读全文
posted @ 2013-11-12 09:02 古霜卡比 阅读(2600) 评论(11) 推荐(1) 编辑