08 2014 档案

摘要:默认的Racket是要对函数参数进行求值的, 例如(f 1 (+ 1 2))里面,(+ 1 2)要先求值为3,变为(f 1 3)再进行下一步操作.因此, Racket若按照SICP使用define关键字来定义延时计算的关键函数delay和cons-stream是不可行的, 需要用宏来定义,绕过求值.... 阅读全文
posted @ 2014-08-22 22:37 LisPythoniC 阅读(1162) 评论(0) 推荐(0)
摘要:(define (range n) (define (recur n) (if (= n -1) '() (cons n (recur (- n 1))))) (recur (- n 1)))(define (flatten a)... 阅读全文
posted @ 2014-08-12 14:09 LisPythoniC 阅读(297) 评论(0) 推荐(0)
摘要:看sicp看到8皇后谜题, 突然兴致来了,尝试独立解决(scheme代码的好处在于,即使你瞟了眼答案, 也不会有任何收获, 除了知道那儿有一坨神秘的括号和英文字符外但Python代码就不同了),成功了,而且还是N皇后算法(把N个皇后放到N*N正方形方格中有多少种方法, N为自然数).最简单的情况是,... 阅读全文
posted @ 2014-08-11 15:46 LisPythoniC 阅读(480) 评论(0) 推荐(0)
摘要:Python中函数是一个对象, 和整数,字符串等对象有很多相似之处,例如可以作为其他函数的参数或返回对象, Python中的函数还可以携带自由变量, 两者无疑极大增进了Python的表达力.但是Python函数自由变量的内部机制和列表解析或for循环结合使用时却暗藏杀机:#---CASE 1fs =... 阅读全文
posted @ 2014-08-08 22:36 LisPythoniC 阅读(2444) 评论(0) 推荐(1)