Beginning of Learning LISP.
2007-02-14 15:15
471 查看
在C/C++中沉浸的时间也不算短了,代码写了不少,用过的模式不多不少——泛模式化和泛政治化一样,都是一种非常极端的思路,C++泛型也玩弄了好一段时间。
C++的强大无可置疑,但强大的缺点也叫人无可奈何。
C/C++都是命令式语言,所谓“命令式语言”指的是告诉目标要做什么和怎么做。使用这种类型的语言的时候,通常采用自顶向下设计方法。打个比方,如同将军率军出征。
先总揽大局,将兵种,兵力,地形,天候,粮草等诸多因素尽数考虑到,然后开始思考布阵,将官的布置,各个将官兵力,兵种的配置等。就这样逐级向下派分任务,直至最后的小分队甚至单个士兵。在这之中,重点要求考虑“全”,“周”则是其次。这个“全”和OO中重点强调的保证接口完善设计准则很接近。
自顶向下的设计中如果考虑欠“全”,最后往往意味着整个设计的失败——难以修改,维护。
在我看来,自顶向下的设计主要是面向“经验丰富”的设计者的,一般人难以企及——包括我自己。
多次尝试“自顶向下”的设计方法失败后,越发觉得经验浅薄。郁闷中,偶然(从VIM转到Emacs的过程中)接触到了LISP。起初是觉FP挺好玩,根据自带教学文档学习。前不久找到PaulGraham的OnLisp一书,渐渐理出了些头绪,对LISP有了更多地了解。
书中点了自顶向下设计的名,强调LISP是bottom-up,也就是自底向上的设计方法。目前仍在学习中,不好妄加评述。个人认为,他们是互补的。
不想当将军的士兵不是好士兵,但是连士兵都当不好,就更别提档将军了,是吧?HEHE
C++的强大无可置疑,但强大的缺点也叫人无可奈何。
C/C++都是命令式语言,所谓“命令式语言”指的是告诉目标要做什么和怎么做。使用这种类型的语言的时候,通常采用自顶向下设计方法。打个比方,如同将军率军出征。
先总揽大局,将兵种,兵力,地形,天候,粮草等诸多因素尽数考虑到,然后开始思考布阵,将官的布置,各个将官兵力,兵种的配置等。就这样逐级向下派分任务,直至最后的小分队甚至单个士兵。在这之中,重点要求考虑“全”,“周”则是其次。这个“全”和OO中重点强调的保证接口完善设计准则很接近。
自顶向下的设计中如果考虑欠“全”,最后往往意味着整个设计的失败——难以修改,维护。
在我看来,自顶向下的设计主要是面向“经验丰富”的设计者的,一般人难以企及——包括我自己。
多次尝试“自顶向下”的设计方法失败后,越发觉得经验浅薄。郁闷中,偶然(从VIM转到Emacs的过程中)接触到了LISP。起初是觉FP挺好玩,根据自带教学文档学习。前不久找到PaulGraham的OnLisp一书,渐渐理出了些头绪,对LISP有了更多地了解。
书中点了自顶向下设计的名,强调LISP是bottom-up,也就是自底向上的设计方法。目前仍在学习中,不好妄加评述。个人认为,他们是互补的。
不想当将军的士兵不是好士兵,但是连士兵都当不好,就更别提档将军了,是吧?HEHE
相关文章推荐
- Begining Of Learning LISP (2)
- 用500行Julia代码开始深度学习之旅 Beginning deep learning with 500 lines of Julia
- Why The Golden Age Of Machine Learning is Just Beginning
- Julia: Beginning deep learning with 500 lines of Julia
- the beginning of learning struts
- 用500行Julia代码开始深度学习之旅 Beginning deep learning with 500 lines of Julia
- The culture of Statistic Learning
- Note of learning Inside the Java Virtual Machine Chapter Five
- 英语学习年终总结——2014 year-end summary of English learning
- 统计学习精要 (Elements of Statistical Learning ) 习题 4.1
- Lisp的本质(The Nature of Lisp)
- 统计学习精要 (Elements of Statistical Learning ) 习题 5.9
- The Nature of Lisp
- 《PSP游戏下载 国际象棋大师:学习的艺术》(Chessmaster : The Art Of Learning)
- Notes on “The Role of Manifold Learning in Human Motion Analysis “ - 1
- Unsupervised Learning of Human Action Categories Using Spatial-Temporal Words
- Basic learning of java: Design a program of garage management system:
- Deep Learning读书笔记(十一):Unsupervised learning of visual invariance with temporal coherence
- The beginning of My blog
- learning python of 基础语法