Discussion:
[Lisp-cn] 初学者关于 do 循环结构的问题
蒋文佼
2014-10-04 12:15:19 UTC
Permalink
是的
䜠是指这䞪意思吗
do ((i start ( + i 1) (x start (+ x 1)))
这里只有i䞀䞪埪环䜓do考虑了倚䞪埪环䜓的情况
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
蒋文佼
2014-10-04 12:10:35 UTC
Permalink
这里只有i䞀䞪埪环䜓do考虑了倚䞪埪环䜓的情况
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Kelvan Sun
2014-10-04 12:13:59 UTC
Permalink
䜠是指这䞪意思吗
do ((i start ( + i 1) (x start (+ x 1)))
这里只有i䞀䞪埪环䜓do考虑了倚䞪埪环䜓的情况
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
宋为@凉拌茶叶
2014-10-05 15:23:21 UTC
Permalink
觉得do为了更强大的功能引入太多括号了,看着挺烦,但dolist和 dotimes限制得
太死,loop宏又很麻烦,有些时候会想自己用宏实现C风格的while和for。

虽然从政治上说,写Lisp就是扩展Lisp本身,但没人会专门为方便使用这种语法打
包库吧,于是乎要想用这种语法,基本上就得每次重写,挺 纠结的。
这里只有i一个循环体,do考虑了多个循环体的情况
网上教程看到如下循环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其中第二行 是定义 i的初值与 递增量
那为什么不是这样写
do (i start (+ i 1))
为什么里面的结构还要套个扩号?谢谢
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn
---
您收到此邮件是因为您订阅了Google网上论坛中的“Lisp-cn(Lisp中文用户组)”论坛。
要查看更多选项,请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn

---
您收到此邮件是因为您订阅了 Google 网上论坛的“Lisp-cn(Lisp中文用户组)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到lisp-cn+***@googlegroups.com。
要查看更多选项,请访
Kelvan Sun
2014-10-05 23:12:28 UTC
Permalink
�սӴ��Ǻܲ�ϰ��

�����ҵ� iPhone
����doΪ�˸�ǿ���Ĺ�������̫������ˣ�����ͦ������dolist�� dotimes���Ƶ� ̫���loop���ֺ��鷳����Щʱ�������Լ��ú�ʵ��C������while��for��
��Ȼ��������˵��дLisp�����չLisp������û�˻�ר��Ϊ����ʹ�������﷨�� �����ɣ����Ǻ�Ҫ���������﷨�������Ͼ͵�ÿ����д��ͦ ����ġ�
����ֻ��iһ��ѭ���壬do�����˶���ѭ����������
���Ͻ̳̿�������ѭ���ṹ�Ĵ���
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
���еڶ��� �Ƕ��� i�ij�ֵ�� �����
��Ϊʲô��������д
do (i start (+ i 1))
Ϊʲô�����Ľṹ��Ҫ�׸����?лл
--
--
Lisp-cn(Lisp�����û���)
CLUG http://lisp.org.cn
---
���յ����ʼ�����Ϊ��������Google������̳�еġ�Lisp-cn(Lisp�����û���)����̳��
Ҫ�鿴����ѡ�������https://groups.google.com/d/optout��
--
--
Lisp-cn(Lisp�����û���)
CLUG http://lisp.org.cn
--- ���յ����ʼ�����Ϊ�������� Google ������̳�ġ�Lisp-cn(Lisp�����û���)����̳��
Ҫ�鿴����ѡ������� https://groups.google.com/d/optout��
--
--
Lisp-cn(Lisp�����û���)
CLUG http://lisp.org.cn

---
���յ����ʼ�����Ϊ�������� Google ������̳�ġ�Lisp-cn(Lisp�����û���)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ���lisp-cn+***@googlegroups.com��
Ҫ�鿴����ѡ���
Xiaofeng Yang
2014-10-07 15:24:34 UTC
Permalink
䞍是䞺了“曎区倧”​是䞺了解析起来方䟿。

Best regards,
Xiaofeng Yang
觉埗do䞺了曎区倧的功胜匕入倪倚括号了看着挺烊䜆dolist和 dotimes限制埗 倪死loop宏又埈麻烊
有些时候䌚想自己甚宏实现C风栌的while和for。
虜然从政治䞊诎写Lisp就是扩展Lisp本身䜆没人䌚䞓闚䞺方䟿䜿甚这种语法打 包库吧于是乎芁想甚这种语法基本䞊就埗每次重写挺 纠结的。
这里只有i䞀䞪埪环䜓do考虑了倚䞪埪环䜓的情况
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
宋为@凉拌茶叶
2014-10-07 23:50:00 UTC
Permalink
怎么有一种高端黑的感觉 :D
不是为了“更强大”​,是为了解析起来方便。
Best regards,
Xiaofeng Yang
觉得do为了更强大的功能引入太多括号了,看着挺烦,但dolist和 dotimes限制得 太死,loop宏又很麻烦,
有些时候会想自己用宏实现C风格的while和for。
虽然从政治上说,写Lisp就是扩展Lisp本身,但没人会专门为方便使用这种语法打 包库吧,于是乎要想用这种语法,基本上就得每次重写,挺 纠结的。
这里只有i一个循环体,do考虑了多个循环体的情况
网上教程看到如下循环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其中第二行 是定义 i的初值与 递增量
那为什么不是这样写
do (i start (+ i 1))
为什么里面的结构还要套个扩号?谢谢
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn
---
您收到此邮件是因为您订阅了Google网上论坛中的“Lisp-cn(Lisp中文用户组)”论坛。
要查看更多选项,请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn
--- 您收到此邮件是因为您订阅了 Google 网上论坛的“Lisp-cn(Lisp中文用户组)”论坛。
要查看更多选项,请访问 https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn

---
您收到此邮件是因为您订阅了 Google 网上论坛的“Lisp-cn(Lisp中文用户组)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到lisp-cn+***@googlegroups.com。
要查看更多选项,请访问 https://groups
Xiaofeng Yang
2014-10-08 03:37:28 UTC
Permalink
本来就是这样。。。​

那些看䌌“䞍必芁”的括号倧倧降䜎了语法的倍杂床䞍仅描述起来可以少埈倚口舌解析起来也曎方䟿同时也避免了混淆。

每䞀层括号郜有自己的䜜甚。

((i start (+ i 1))) 倖面层的括号䜿埗这是䞀䞪LIST里面每䞪元玠郜是(i start (+ i
1))这种圢匏的或者是单独䞀䞪变量。然后再单独解析里面的每䞀䞪(i start (+ i 1))或者是单独䞀䞪变量。

劂果同时允讞(i start (+ i 1))和((i start (+ i 1)))䞀种语法那么圓䜠遇到䞀䞪(do (i start (+ i
1))的时候(i start (+ i 1))里面的每䞀䞪元玠衚瀺啥呢到底是只是䞀䞪单独的var还是䞀䞪init-form还是啥啥啥

于是这䞪问题䟿变埗倍杂起来了。。。。。


70幎代到CL诞生时的计算机郜是埈匱的把这么䞀䞪小问题做的劂歀倍杂是埗䞍偿倱的。


Best regards,
Xiaofeng Yang
怎么有䞀种高端黑的感觉 :D
䞍是䞺了“曎区倧”​是䞺了解析起来方䟿。
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
觉埗do䞺了曎区倧的功胜匕入倪倚括号了看着挺烊䜆dolist和 dotimes限制埗 倪死loop宏又埈麻烊
有些时候䌚想自己甚宏实现C风栌的while和for。
虜然从政治䞊诎写Lisp就是扩展Lisp本身䜆没人䌚䞓闚䞺方䟿䜿甚这种语法打 包库吧于是乎芁想甚这种语法基本䞊就埗每次重写挺 纠结的。
这里只有i䞀䞪埪环䜓do考虑了倚䞪埪环䜓的情况
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Yunfan Jiang
2014-10-08 03:40:55 UTC
Permalink
是的 尀其是类c语法 我们熟悉了以后觉埗埈自然 其实对于䞍懂的人来诎 还是跟咒语差䞍倚
劂果䜠䞀定芁教䞀䞪普通人孊猖皋 我觉埗芁区记的规则越少越奜 lisp系党甚括号埈奜
Post by Xiaofeng Yang
本来就是这样。。。​
那些看䌌“䞍必芁”的括号倧倧降䜎了语法的倍杂床䞍仅描述起来可以少埈倚口舌解析起来也曎方䟿同时也避免了混淆。
每䞀层括号郜有自己的䜜甚。
((i start (+ i 1))) 倖面层的括号䜿埗这是䞀䞪LIST里面每䞪元玠郜是(i start (+ i
1))这种圢匏的或者是单独䞀䞪变量。然后再单独解析里面的每䞀䞪(i start (+ i 1))或者是单独䞀䞪变量。
劂果同时允讞(i start (+ i 1))和((i start (+ i 1)))䞀种语法那么圓䜠遇到䞀䞪(do (i start (+ i
1))的时候(i start (+ i 1))里面的每䞀䞪元玠衚瀺啥呢到底是只是䞀䞪单独的var还是䞀䞪init-form还是啥啥啥
于是这䞪问题䟿变埗倍杂起来了。。。。。
70幎代到CL诞生时的计算机郜是埈匱的把这么䞀䞪小问题做的劂歀倍杂是埗䞍偿倱的。
Best regards,
Xiaofeng Yang
怎么有䞀种高端黑的感觉 :D
Post by Xiaofeng Yang
䞍是䞺了“曎区倧”​是䞺了解析起来方䟿。
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
觉埗do䞺了曎区倧的功胜匕入倪倚括号了看着挺烊䜆dolist和 dotimes限制埗 倪死loop宏又埈麻烊
有些时候䌚想自己甚宏实现C风栌的while和for。
虜然从政治䞊诎写Lisp就是扩展Lisp本身䜆没人䌚䞓闚䞺方䟿䜿甚这种语法打 包库吧于是乎芁想甚这种语法基本䞊就埗每次重写挺
纠结的。
这里只有i䞀䞪埪环䜓do考虑了倚䞪埪环䜓的情况
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
Name: yunfan
Site: http://geek42.info/
Interest:
- Lang: [forth, clojure, c, python, lua]
- software: [nginx, redis]
- abstract: [vm, tiny, cloud, html5]
- history
- science-fiction
- music: [new-age, vangelis, yanni]
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Xiaofeng Yang
2014-10-08 04:02:06 UTC
Permalink
别以䞺lisp系就是党甚括号dylanlogo郜朚有括号。
别以䞺党甚括号就简单Common Lisp的语法远比C++倍杂。即䟿䜠䜿甚的是标准文法那么比方诎刚才那䞪do描述起来也是

*Syntax:*

*do* *({var | (var [init-form [step-form]])}*) (end-test-form result-form*)
declaration* {tag | statement}**

=> *result**

*do** *({var | (var [init-form [step-form]])}*) (end-test-form
result-form*) declaration* {tag | statement}**

=> *result**

*Arguments and Values:*

*var*---a *symbol*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_s.htm#symbol>.


*init-form*---a *form*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_f.htm#form>.

*step-form*---a *form*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_f.htm#form>.

*end-test-form*---a *form*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_f.htm#form>.

*result-forms*---an *implicit progn*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_i.htm#implicit_progn>.


*declaration*---a *declare*
<http://www.lispworks.com/documentation/HyperSpec/Body/s_declar.htm#declare>
*expression*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_e.htm#expression>;
not evaluated.

*tag*---a *go tag*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_g.htm#go_tag>;
not evaluated.

*statement*---a *compound form*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_c.htm#compound_form>;
evaluated as described below.

*results*---if a *return*
<http://www.lispworks.com/documentation/HyperSpec/Body/m_return.htm#return>
or *return-from*
<http://www.lispworks.com/documentation/HyperSpec/Body/s_ret_fr.htm#return-from>
form is executed, the *values*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_v.htm#value>
passed from that *form*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_f.htm#form>;
otherwise, the *values*
<http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_v.htm#value>
returned by the *result-forms*. ​

后面的各种限制和䜜甚之类的文字倪倚省略 P.S. 泚意这只是hyperspec后面的玢匕分散圚文档里的还䞍算


我们再来看看标准C11的语法




真的可以少记规则了吗


像CL这种兞型的没有统䞀讟计规则的䞜西芁记忆的䞜西是盞圓倚的。



​​


Best regards,
Xiaofeng Yang
Post by Yunfan Jiang
是的 尀其是类c语法 我们熟悉了以后觉埗埈自然 其实对于䞍懂的人来诎 还是跟咒语差䞍倚
劂果䜠䞀定芁教䞀䞪普通人孊猖皋 我觉埗芁区记的规则越少越奜 lisp系党甚括号埈奜
本来就是这样。。。​
Post by Xiaofeng Yang
那些看䌌“䞍必芁”的括号倧倧降䜎了语法的倍杂床䞍仅描述起来可以少埈倚口舌解析起来也曎方䟿同时也避免了混淆。
每䞀层括号郜有自己的䜜甚。
((i start (+ i 1))) 倖面层的括号䜿埗这是䞀䞪LIST里面每䞪元玠郜是(i start (+ i
1))这种圢匏的或者是单独䞀䞪变量。然后再单独解析里面的每䞀䞪(i start (+ i 1))或者是单独䞀䞪变量。
劂果同时允讞(i start (+ i 1))和((i start (+ i 1)))䞀种语法那么圓䜠遇到䞀䞪(do (i start (+ i
1))的时候(i start (+ i 1))里面的每䞀䞪元玠衚瀺啥呢到底是只是䞀䞪单独的var还是䞀䞪init-form还是啥啥啥
于是这䞪问题䟿变埗倍杂起来了。。。。。
70幎代到CL诞生时的计算机郜是埈匱的把这么䞀䞪小问题做的劂歀倍杂是埗䞍偿倱的。
Best regards,
Xiaofeng Yang
怎么有䞀种高端黑的感觉 :D
Post by Xiaofeng Yang
䞍是䞺了“曎区倧”​是䞺了解析起来方䟿。
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
觉埗do䞺了曎区倧的功胜匕入倪倚括号了看着挺烊䜆dolist和 dotimes限制埗 倪死loop宏又埈麻烊
有些时候䌚想自己甚宏实现C风栌的while和for。
虜然从政治䞊诎写Lisp就是扩展Lisp本身䜆没人䌚䞓闚䞺方䟿䜿甚这种语法打 包库吧于是乎芁想甚这种语法基本䞊就埗每次重写挺
纠结的。
这里只有i䞀䞪埪环䜓do考虑了倚䞪埪环䜓的情况
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
Name: yunfan
Site: http://geek42.info/
- Lang: [forth, clojure, c, python, lua]
- software: [nginx, redis]
- abstract: [vm, tiny, cloud, html5]
- history
- science-fiction
- music: [new-age, vangelis, yanni]
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Gin liu
2014-10-05 15:58:15 UTC
Permalink
可以自己写一套呀,传到quicklisp上面
觉得do为了更强 大的功能引入太多括号了,看着挺烦,但dolist和 dotimes限
制得 太死,loop宏又很麻烦,有些时候会想自己用宏实现C风格的while和for。
虽然从政治上说,写Lisp就是扩展Lisp本身,但没人会专门为方便使用这种语法
打 包库吧,于是乎要想用这种语法,基本上就得每次重写,挺 纠结的。
这里只有i一个循环体,do考虑了多个循环体的情况
网上教程看到如下循环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其中第二行 是定义 i的初值与 递增量
那为什么不是这样写
do (i start (+ i 1))
为什么里面的结构还要套个扩号?谢谢
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn
---
您收到此邮件是因为您订阅了Google网上论坛中的“Lisp-cn(Lisp中文用户
组)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到lisp-
要查看更多选项,请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn

---
您收到此邮件是因为您订阅了 Google 网上论坛的“Lisp-cn(Lisp中文用户组)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到lisp-cn+***@googlegroups.com。
要查看更多选项,请访问 https
Gin liu
2014-10-05 02:08:12 UTC
Permalink
哈,这䞪我知道,芁是埪环还需芁䞀䞪j的话就必须这么写
这里只有i䞀䞪埪环䜓do考虑了倚䞪埪环䜓的情况
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户
组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”
论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Kelvan Sun
2014-10-04 12:20:42 UTC
Permalink
лл ÊÜœÌÁË

·¢×ÔÎÒµÄ iPhone
ÊǵÄ
ÄãÊÇÖžÕâžöÒâËŒÂð£¿
do ((i start ( + i 1) (x start (+ x 1)))
ÕâÀïÖ»ÓÐiÒ»žöÑ­»·Ì壬do¿ŒÂÇÁ˶àžöÑ­»·ÌåµÄÇé¿ö
ÍøÉϜ̳̿ŽµœÈçÏÂÑ­»·œá¹¹µÄŽúÂë
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
ÆäÖеڶþÐÐ ÊǶšÒå iµÄ³õÖµÓë µÝÔöÁ¿
ÄÇΪʲβ»ÊÇÕâÑùÐŽ
do (i start (+ i 1))
ΪʲÎÀïÃæµÄœá¹¹»¹ÒªÌמöÀ©ºÅ?лл
--
--
Lisp-cn(LispÖÐÎÄÓû§×é)
CLUG http://lisp.org.cn
---
ÄúÊÕµœŽËÓÊŒþÊÇÒòΪÄú¶©ÔÄÁËGoogleÍøÉÏÂÛ̳Öеġ°Lisp-cn(LispÖÐÎÄÓû§×é)¡±ÂÛ̳¡£
Òª²é¿Žžü¶àÑ¡ÏÇë·ÃÎÊhttps://groups.google.com/d/optout¡£
--
--
Lisp-cn(LispÖÐÎÄÓû§×é)
CLUG http://lisp.org.cn
---
ÄúÊÕµœŽËÓÊŒþÊÇÒòΪÄú¶©ÔÄÁËGoogleÍøÉÏÂÛ̳Öеġ°Lisp-cn(LispÖÐÎÄÓû§×é)¡±ÂÛ̳¡£
Òª²é¿Žžü¶àÑ¡ÏÇë·ÃÎÊhttps://groups.google.com/d/optout¡£
--
--
Lisp-cn(LispÖÐÎÄÓû§×é)
CLUG http://lisp.org.cn
---
ÄúÊÕµœŽËÓÊŒþÊÇÒòΪÄú¶©ÔÄÁËGoogleÍøÉÏÂÛ̳Öеġ°Lisp-cn(LispÖÐÎÄÓû§×é)¡±ÂÛ̳¡£
Òª²é¿Žžü¶àÑ¡ÏÇë·ÃÎÊhttps://groups.google.com/d/optout¡£
--
--
Lisp-cn(LispÖÐÎÄÓû§×é)
CLUG http://lisp.org.cn
---
ÄúÊÕµœŽËÓÊŒþÊÇÒòΪÄú¶©ÔÄÁËGoogleÍøÉÏÂÛ̳Öеġ°Lisp-cn(LispÖÐÎÄÓû§×é)¡±ÂÛ̳¡£
Òª²é¿Žžü¶àÑ¡ÏÇë·ÃÎÊhttps://groups.google.com/d/optout¡£
--
--
Lisp-cn(LispÖÐÎÄÓû§×é)
CLUG http://lisp.org.cn

---
ÄúÊÕµœŽËÓÊŒþÊÇÒòΪÄú¶©ÔÄÁË Google ÍøÉÏÂÛ̳µÄ¡°Lisp-cn(LispÖÐÎÄÓû§×é)¡±ÂÛ̳¡£
ÒªÍ˶©ŽËÂÛ̳²¢Í£Ö¹œÓÊÕŽËÂÛ̳µÄµç×ÓÓÊŒþ£¬Çë·¢Ë͵ç×ÓÓÊŒþµœlisp-cn+***@googlegroups.com¡£
Òª²é¿Žžü¶àÑ¡ÏÇë·ÃÎÊ https://groups.google.com/d/optout¡£
Kelvan Sun
2014-10-04 12:02:07 UTC
Permalink
眑䞊教皋看到劂䞋埪环结构的代码

(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))

其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))


䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Kelvan Sun
2014-10-11 04:51:47 UTC
Permalink
我的䞀䞪提问匕来了这么倧的回倍小感劚

圚 2014幎10月4日星期六UTC+8䞋午8时02分07秒Kelvan Sun写道
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Gin liu
2014-10-11 05:04:15 UTC
Permalink
这矀这么倚牛逌人,有空可以䞀起写䞪项目啥的
Post by Kelvan Sun
我的䞀䞪提问匕来了这么倧的回倍小感劚
圚 2014幎10月4日星期六UTC+8䞋午8时02分07秒Kelvan Sun写道
眑䞊教皋看到劂䞋埪环结构的代码
(defun show-squares (start end)
(do ((i start (+ i 1)))
((> i end) 'done)
(format t "~A ~A~%" i (* i i))))
其䞭第二行 是定义 i的初倌䞎 递增量
那䞺什么䞍是这样写
do (i start (+ i 1))
䞺什么里面的结构还芁套䞪扩号?谢谢
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”
论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Loading...