clisp 中的 cons
来源:互联网 发布:linux man命令退出 编辑:程序博客网 时间:2024/05/20 07:33
;nil -> c -> b c -> a b c(cons 'a (cons 'b (cons 'c ()))); b c -> a b c(cons 'a '(b c));c -> b c -> a b c(cons 'a (cons 'b '(c)))
刚学clisp,做到一个习题:
给出 3 种不同表示(a b c) 的 cons表达式。
于是乎,傻傻地敲了几下。快速找到了两种:即上面两种。
对于第三种我尝试了很多写法:
(cons 'a (cons 'b 'c))
输出为:(A B . C)
(cons 'a (cons (cons 'b ()) (cons 'c ())))
输出为:(A (B) C)
(cons 'a (cons 'b (cons () 'c)))
输出为:(A B NIL . C)
(cons '(a b c) nil)
输出为:((A B C))
快把我折磨疯了。最后求助于google。
找到一篇文章:理解lisp中的cons点击打开链接
感觉说得很有道理,什么点列表, 真列表。貌似找到了答案。多厉害啊,一条规则。但是,如何解释
(cons 'a '(b c))
而且,他的想法也就只能推出
(cons 'a (cons 'b (cons 'c ())))而且我从来不喜欢什么定理,规律。死记硬背的东西,我一向不屑。因为我坚持所有定理规律都是人写的,那么一定是有原因的,是可以被理解的。
后来我发现我已经成功的两个列表中,貌似都是; a b c ()构成的。而且()都是在最右端。(这点和他说的一致:真列表最右端为nil,这是成为真列表的必要条件)
我又尝试了多次后发现,按照优先级,最里层的括号内先执行,并且按照执行顺序进行cons,在cons过程中需要保证真列表(*)位于最右边。(比较理论的表达)
土鳖表达:先定义模板:(*),然后自右向左塞入元素。(多简单啊,多和谐啊)
阅读全文
0 0
- clisp 中的 cons
- 理解lisp中的cons
- Erlang中的cons operator |
- clisp中的调试展开
- 关于C语言中的cons的使用。
- C++中的const数据成员和cons成员函数
- CLisp 20:理解On-Lisp书中的延续continuation
- 9. cons
- 总结cons
- 总结cons
- 总结cons
- 总结cons
- 总结cons
- C++ cons
- clisp笔记
- CLISP special
- CONS,LIST,NOlist cons structures
- CONS形式化 (一般化)
- java集合排序总结
- const修饰指针的用法
- 转载Eclipse 查看jdk源码
- 分页排序,各页中记录存在重复现象
- 算法导论笔记(四)
- clisp 中的 cons
- 服务器监控系统Zabbix的host、Item、trigger、action图解教程(第二章)
- 最近发现findViewById不再需要强制转型啦
- 基于java,selenium选择下拉框的某一个选项
- 关于做深度学习 FPGA的几点考虑
- Spring Cloud Zuul结合Smconf配置中心动态进行IP黑名单限制
- 7.2.3 数值随机化算法解非线性方程组
- 设计模式-模板方法模式
- 42. Trapping Rain Water