您的位置:首页 > 编程语言 > C语言/C++

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
   
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lisp 语言 emacs c++ 文档 vim