Groups
Groups
Sign in
Groups
Groups
Lisp中国用户组
Conversations
About
Send feedback
Help
Lisp中国用户组
1–30 of 149
Mark all as read
Report group
0 selected
panfei
,
kaixin luo
2
3/5/17
大家是怎么学习lisp的
关键要动手写吧,熟悉语法了就看SCIP 在 2012年10月15日星期一 UTC-4下午10:18:33,panfei写道: 以前断断续续地看了一些lisp的资料,但是总是坚持不下去,对于稍微有些复杂的
unread,
大家是怎么学习lisp的
关键要动手写吧,熟悉语法了就看SCIP 在 2012年10月15日星期一 UTC-4下午10:18:33,panfei写道: 以前断断续续地看了一些lisp的资料,但是总是坚持不下去,对于稍微有些复杂的
3/5/17
panfei
10/22/12
【翻译】Lisp.中止(Aborts)
你可以使用return从一个block中的任何一点退出。有事我们想要做更极端的事情,并且在几个函数调用之间转移控制。我们通过catch和throw来完成这样的事情。一个catch表达式接收一个标签(
unread,
【翻译】Lisp.中止(Aborts)
你可以使用return从一个block中的任何一点退出。有事我们想要做更极端的事情,并且在几个函数调用之间转移控制。我们通过catch和throw来完成这样的事情。一个catch表达式接收一个标签(
10/22/12
panfei
10/22/12
【翻译】Lisp.多值(Multiple values)
有人曾经说过,为了强调函数式编程语言的重要性,都要说每个Lisp表达式都返回一个值。现在事情没有那么简单了;在Common Lisp中,一个表达式可以返回0个或多个值。返回值的最大个数根据实现的不同而
unread,
【翻译】Lisp.多值(Multiple values)
有人曾经说过,为了强调函数式编程语言的重要性,都要说每个Lisp表达式都返回一个值。现在事情没有那么简单了;在Common Lisp中,一个表达式可以返回0个或多个值。返回值的最大个数根据实现的不同而
10/22/12
panfei
10/17/12
【翻译】Lisp.结构(structure)
一个结构(structure)可以看成是一个加强版的向量(vector)。假设你需要写一个程序来跟踪许多长方体。你可能会考虑将它们表示成一个具有三个元素的向量:高,宽和长。如果你使用诸如如下的函数,而
unread,
【翻译】Lisp.结构(structure)
一个结构(structure)可以看成是一个加强版的向量(vector)。假设你需要写一个程序来跟踪许多长方体。你可能会考虑将它们表示成一个具有三个元素的向量:高,宽和长。如果你使用诸如如下的函数,而
10/17/12
panfei
10/15/12
【翻译】Lisp.字符串和字符
字符串是字符的向量。我们把常量字符串看成是一系列被双引号环绕的字符,一个单独的字符c被表示为#\c。 通常(但不是必须的),每个字符都会有一个相关的整数,这个整数就是ASCII码。在多数的实现中,函数
unread,
【翻译】Lisp.字符串和字符
字符串是字符的向量。我们把常量字符串看成是一系列被双引号环绕的字符,一个单独的字符c被表示为#\c。 通常(但不是必须的),每个字符都会有一个相关的整数,这个整数就是ASCII码。在多数的实现中,函数
10/15/12
panfei
10/15/12
【翻译】Lisp.集合
列表是一种表示小集合的好方式。列表中的每一个元素是它所代表的集合中的一个成员: [plain] view plaincopy [1]> (member 'b '(a b c)) (
unread,
【翻译】Lisp.集合
列表是一种表示小集合的好方式。列表中的每一个元素是它所代表的集合中的一个成员: [plain] view plaincopy [1]> (member 'b '(a b c)) (
10/15/12
panfei
10/15/12
【翻译】Lisp.理解递归
学习递归的学生有时会被鼓励在纸上跟踪递归函数的所有调用。这种练习可能会有误导:程序员定义一个递归函数的时候,通常不会考虑因为调用它而产生的所有调用。如果有人非得以这一的方式来考虑程序,那么递归就是令人
unread,
【翻译】Lisp.理解递归
学习递归的学生有时会被鼓励在纸上跟踪递归函数的所有调用。这种练习可能会有误导:程序员定义一个递归函数的时候,通常不会考虑因为调用它而产生的所有调用。如果有人非得以这一的方式来考虑程序,那么递归就是令人
10/15/12
panfei
10/13/12
nil is both an atom and a list.
nil is both an atom and a list. But it's not a cons -- 不学习,不知道
unread,
nil is both an atom and a list.
nil is both an atom and a list. But it's not a cons -- 不学习,不知道
10/13/12
panfei
10/13/12
什么是lambda
lambda表达式中的lambda不是一个操作符。它仅仅是一个符号。在早期的lisp方言中,它有一个目的:函数在内部被表示为列表,将一个函数和普通的列表区分开的唯一方法就是看它的第一个元素是否是符号
unread,
什么是lambda
lambda表达式中的lambda不是一个操作符。它仅仅是一个符号。在早期的lisp方言中,它有一个目的:函数在内部被表示为列表,将一个函数和普通的列表区分开的唯一方法就是看它的第一个元素是否是符号
10/13/12
panfei
10/12/12
remove 函数
[55]> (setf lst '(carat)) (CARAT) [56]> (remove 'a lst) (CRT) [57]> lst (CARAT) [58]
unread,
remove 函数
[55]> (setf lst '(carat)) (CARAT) [56]> (remove 'a lst) (CRT) [57]> lst (CARAT) [58]
10/12/12
panfei
10/12/12
setf
[28]> (setf *glob* 98) 98 [29]> (let ((n 10)) (setf n 2) n) 2 [30]> (+ 1 n) *** - SYSTEM::
unread,
setf
[28]> (setf *glob* 98) 98 [29]> (let ((n 10)) (setf n 2) n) 2 [30]> (+ 1 n) *** - SYSTEM::
10/12/12
panfei
10/12/12
定义常量以及判断符号是否已经被绑定到全局变量或者常量
[23]> (defconstant limit (+ pan 1)) LIMIT [24]> (boundp '*glob*) T [25]> (boundp '
unread,
定义常量以及判断符号是否已经被绑定到全局变量或者常量
[23]> (defconstant limit (+ pan 1)) LIMIT [24]> (boundp '*glob*) T [25]> (boundp '
10/12/12
panfei
10/12/12
定义全局变量
[17]> (defparameter *glob* 99) *GLOB* [18]> (+ 1 glob) *** - SYSTEM::READ-EVAL-PRINT: variable
unread,
定义全局变量
[17]> (defparameter *glob* 99) *GLOB* [18]> (+ 1 glob) *** - SYSTEM::READ-EVAL-PRINT: variable
10/12/12
panfei
10/12/12
let 用来引入新的本地变量
let所指定的变量不是全局的,而是本地的: [7]> (let ((x 1) (y 2))) NIL [8]> x *** - SYSTEM::READ-EVAL-PRINT:
unread,
let 用来引入新的本地变量
let所指定的变量不是全局的,而是本地的: [7]> (let ((x 1) (y 2))) NIL [8]> x *** - SYSTEM::READ-EVAL-PRINT:
10/12/12
panfei
10/12/12
lisp format 格式化参数
~A代表一个需要被填充的位置;~%代表一个新行。 -- 不学习,不知道
unread,
lisp format 格式化参数
~A代表一个需要被填充的位置;~%代表一个新行。 -- 不学习,不知道
10/12/12
panfei
9/21/12
加入Lisp强制用缩进来组织代码?
这样会不会在可读性上更好一些,而这种限制又使得人们对代码的可读性有了新的认识,而不是看到一堆的括号? 请指教 -- 不学习,不知道
unread,
加入Lisp强制用缩进来组织代码?
这样会不会在可读性上更好一些,而这种限制又使得人们对代码的可读性有了新的认识,而不是看到一堆的括号? 请指教 -- 不学习,不知道
9/21/12
panfei
9/13/12
Lisp:輸出
(format t "~A plus ~A equals ~A.~%" 2 3 (+ 2 3)) 2 plus 3 equals 5. NIL 我們注意到這裡顯示了兩個東西。第一行是
unread,
Lisp:輸出
(format t "~A plus ~A equals ~A.~%" 2 3 (+ 2 3)) 2 plus 3 equals 5. NIL 我們注意到這裡顯示了兩個東西。第一行是
9/13/12
panfei
9/12/12
定義函式
(defun our-third (x) (car (cdr (cdr x)))) defun的第一個參數代表我們自己定義的函式的名字。第二個參數 列表 (x),代表函數只接受一個參數:x。被以這種方式
unread,
定義函式
(defun our-third (x) (car (cdr (cdr x)))) defun的第一個參數代表我們自己定義的函式的名字。第二個參數 列表 (x),代表函數只接受一個參數:x。被以這種方式
9/12/12
panfei
9/12/12
關於真值
儘管t是默認用來代表“真”的,但是任何非nil的東西在邏輯上下文中也是被看作“真”的。 -- 不学习,不知道
unread,
關於真值
儘管t是默認用來代表“真”的,但是任何非nil的東西在邏輯上下文中也是被看作“真”的。 -- 不学习,不知道
9/12/12
data work
,
马健
3
1/4/12
ONLINE DATA ENTRY JOBS
怎么会有机器人加入这个群组? 在 2012年1月4日 下午12:27,data work <onlinej...@gmail.com>写道: online data entry
unread,
ONLINE DATA ENTRY JOBS
怎么会有机器人加入这个群组? 在 2012年1月4日 下午12:27,data work <onlinej...@gmail.com>写道: online data entry
1/4/12
潘飞
6/15/11
a为mint,lat为(lamb chops and mint jelly)的情况下,(rember a lat)的结果是什么?
a为mint,lat为(lamb chops and mint jelly)的情况下,(rember a lat)的结果是什么? (lamb chops and jelly), rember代表删除一个
unread,
a为mint,lat为(lamb chops and mint jelly)的情况下,(rember a lat)的结果是什么?
a为mint,lat为(lamb chops and mint jelly)的情况下,(rember a lat)的结果是什么? (lamb chops and jelly), rember代表删除一个
6/15/11
潘飞
6/9/11
下一个问题是什么
下一个问题是什么? else 为什么else是下一个问题? 因为我们不需要询问更多的问题了。 else真是一个问题吗? 是的,else是一个值永远为真的问题 这一行的意思是什么:(else (or (
unread,
下一个问题是什么
下一个问题是什么? else 为什么else是下一个问题? 因为我们不需要询问更多的问题了。 else真是一个问题吗? 是的,else是一个值永远为真的问题 这一行的意思是什么:(else (or (
6/9/11
潘飞
6/9/11
lat的值是(mashed potatoes and meat gravy),((null? lat) #f)是什么意思?
(null? lat)询问lat是否是空列表。如果是,这个值就是#f,因为meat还没有找到。如果不是,我们询问下一个问题。这里,它不是空,所以我们询问下一个问题。 -- Stay Hungry.
unread,
lat的值是(mashed potatoes and meat gravy),((null? lat) #f)是什么意思?
(null? lat)询问lat是否是空列表。如果是,这个值就是#f,因为meat还没有找到。如果不是,我们询问下一个问题。这里,它不是空,所以我们询问下一个问题。 -- Stay Hungry.
6/9/11
linlin lin
,
潘飞
3
6/9/11
clisp小代码
我在读 ansi common lisp (第2版) 和 onlisp 。
unread,
clisp小代码
我在读 ansi common lisp (第2版) 和 onlisp 。
6/9/11
linlin lin
,
潘飞
2
6/8/11
onlisp 小笔记
感谢分享 2011/6/8 linlin lin <maka...@gmail.com> onlisp Lisp是一门可以编程的编程语言。 自底以上编写程序的方法,是Lisp与生俱来的强项
unread,
onlisp 小笔记
感谢分享 2011/6/8 linlin lin <maka...@gmail.com> onlisp Lisp是一门可以编程的编程语言。 自底以上编写程序的方法,是Lisp与生俱来的强项
6/8/11
潘飞
6/6/11
第一个戒条
在表达函数的时候,总是将null?作为第一个询问的问题。 -- Stay Hungry. Stay Foolish.
unread,
第一个戒条
在表达函数的时候,总是将null?作为第一个询问的问题。 -- Stay Hungry. Stay Foolish.
6/6/11
潘飞
6/6/11
(member? a lat)询问的第一个问题是什么?
(null? lat) 这也是lat?询问的第一个问题 -- Stay Hungry. Stay Foolish.
unread,
(member? a lat)询问的第一个问题是什么?
(null? lat) 这也是lat?询问的第一个问题 -- Stay Hungry. Stay Foolish.
6/6/11
潘飞
6/5/11
我们怎样确定上一个应用的值是真?
这个值是通过询问这样一个问题得到的:(member? a lat). HINT:写下函数member?的定义,并在下一组问题中引用它。 -- Stay Hungry. Stay Foolish.
unread,
我们怎样确定上一个应用的值是真?
这个值是通过询问这样一个问题得到的:(member? a lat). HINT:写下函数member?的定义,并在下一组问题中引用它。 -- Stay Hungry. Stay Foolish.
6/5/11
潘飞
6/5/11
以下函数是member吗?
以下函数是member吗? (defun member? (lambda (a lat) (cond ((null? lat) #f) (else (or (eq? (car lat) a) (
unread,
以下函数是member吗?
以下函数是member吗? (defun member? (lambda (a lat) (cond ((null? lat) #f) (else (or (eq? (car lat) a) (
6/5/11
Fei Pan
3
3/16/11
(lat? (cdr l))是什么意思?
(lat (cdr l))检查l的剩余部分是不是只由原子组成,通过把l替换成(cdr l)之后来对它调用lat? -- Stay Hungry. Stay Foolish.
unread,
(lat? (cdr l))是什么意思?
(lat (cdr l))检查l的剩余部分是不是只由原子组成,通过把l替换成(cdr l)之后来对它调用lat? -- Stay Hungry. Stay Foolish.
3/16/11