摘要: 查了半天没有找到scheme中判断数据类型的函数,索性自己写了个type?,发现闭包和递归有着微妙的联系.本例中,自由变量是types,外层let初始化了types的值,内层let里的(set! types rest)则是在不断缩小types.直至为null.;let内嵌lambda,可以构成闭包;expr ...部分即可对freevar进行各种修改值的操作(define function (let ((freevar value) ...) (lambda (var ...) expr ... )))(define type? (let ((types (list ... 阅读全文
posted @ 2013-10-24 17:23 LisPythoniC 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 想法源自:http://stackoverflow.com/questions/141642/what-limitations-have-closures-in-python-compared-to-language-x-closuresPython 2.7 的闭包中的自由变量(co_freevars)只读的.Python需要某些技巧来"变相修改"自由变量:>>> def add(n): freevar=[n] def closure(): freevar[0]+=1 return freevar[0] return closure>>> 阅读全文
posted @ 2013-10-24 14:20 LisPythoniC 阅读(750) 评论(0) 推荐(0) 编辑