On Lisp的笔记(8)

>我来写笔记

按有用程度 按页码先后 最新笔记

  • Cnxhm
    6.2

    Cnxhm (Remember)

    p 79 Figure 6.5的这个改进,看不懂啊.. 并且下面直接这样用: (funcall (gethash 'people *nodes*)) 看不懂到底是要干嘛的啊,关键是这样用会出错... (更多)

    2012-05-25 16:53:30   回应

  • 撒旦先生
    第69页

    撒旦先生

    (defun lrec (rec &optional base) (labels ((self (lst) (if (null lst) (if (functionp base) (funcall base) base) (funcall rec (car lst) #'(lambda () (self (cdr lst))))))) (lrec #'(lambda (x f) (1+ (funcall f))) 0) (lrec #'(lambda (x f) (... (更多)

    2011-11-26 11:18:51   回应

  • jesse
    第4页

    jesse

    最前边的第iv页竟然是个孤零零的 λ。 (更多)

    2011-10-24 19:51:58   回应

  • drunkedcat
    第17页

    drunkedcat

    在 cl 中, 采用的是 lexically scope, 所以在函数定义的时候, 函数的名字除了绑定这个函数,还绑定了函数中定义的 free varibale, 这样一堆东西放在一起,叫做 closure. 闭包. free 的反义词是 bound. free 的变量, 它的值是不一定的. bound 的变量的值, 是确定的. closures are functions with local state. (更多)

    2011-05-31 22:31:51   回应

  • drunkedcat
    第15页

    drunkedcat

    #' 只在通过名字引用函数本身时使用. 而在把函数当作对象使用时,不需要使用 #' (更多)

    2011-05-31 22:22:35   回应

  • drunkedcat
    第12页

    drunkedcat

    在 common lisp 中, 函数和变量使用不同的名空间,所以,可以有名字相同的函数和变量,不会混淆. (更多)

    2011-05-31 22:07:55   回应

  • drunkedcat
    第11页

    drunkedcat

    lambda 表达式,就是函数的 literally 表示. 有没有什么快捷的方法来"证明"两个函数是等价的呢?比如 (lambda (x) (+ x x)) 和 (lambda (x) (* 2 x)) ? (更多)

    2011-05-31 22:04:10   回应

  • drunkedcat
    第20页

    drunkedcat

    突然想到: 1, 可以通过 macro 来自定义语法结构(所以有人说, lisp 的语法就是,没有语法) 2, 数据和函数是一样的 那么,经过一步步抽象之后,最后使用的"语言", 看起来除了到处都是括号,其它一点也看不出它是 lisp 了,但是,它就是 lisp (更多)

    2011-05-31 21:47:42   回应

笔记是你写在书页留白边上的内容;是你阅读中的批注、摘抄及随感。

笔记必须是自己所写,不欢迎转载。摘抄原文的部分应该进行特殊标明。

On Lisp

>On Lisp