Chinaunix

标题: 一秒钟教你变 Lisper! [打印本页]

作者: flw    时间: 2011-12-02 16:48
标题: 一秒钟教你变 Lisper!
发信人: CMUCL (binghe), 信区: FuncProgram
标  题: Re: 一些最近Scala在工业界应用的争论
发信站: 水木社区 (Fri Dec  2 13:51:36 2011), 站内

嗯,我的方法是这样的:

* 每个函数里唯一的语句就是 return,后跟巨大的逗号表达式;
* 绝对不使用 if 语句,只用三目运算符。
* 右大括号不换行写,全部堆在一起:}}}}

【 在 No1 () No1 () 的大作中提到: 】
: binghe版主不还给别人演示过lisp风格的c程序吗 :)
作者: 塑料袋    时间: 2011-12-02 17:06
发信人: CMUCL (binghe), 信区: FuncProgram
标  题: Re: 一些最近Scala在工业界应用的争论
发信站: 水木 ...
flw 发表于 2011-12-02 16:48



     顶!!!

   通过我上穷碧落下黄泉,这20年来孜孜不倦的求索与思考,这就是lisp和oop的真谛。


   大象无形,大音无声。就这么普通几句话,在看似粗糙的外表下,却隐藏着编程思想的奥秘~~

   另一方面,也再次印证了天道酬勤,人间正道是沧桑的道理。

   什么对象,什么思想都是扯淡的,只有刻苦,只有汗水,才是唯一正途。只要汗水到了,自然能将最普通的“太祖长拳”打出来藐视天下群雄的气势。
作者: keytounix    时间: 2011-12-02 17:11
本帖最后由 keytounix 于 2011-12-02 17:14 编辑
顶!!!

   通过我上穷碧落下黄泉,这20年来孜孜不倦的求索与思考,这就是lisp和oop的真谛。 ...
塑料袋 发表于 2011-12-02 17:06





神作啊

看了塑料带 你这个评论

我如醍醐灌顶
焕然大悟
”什么思想都是扯淡“-----说出这话需要多么豪迈的胸襟
”只有刻苦,只有汗水,才是唯一正途“---------能体会到并阐述出这个道理,需要多么坎坷的经历啊
"只要汗水到了,自然能将最普通的“太祖长拳”打出来藐视天下群雄的气势"--------这话貌似平淡,却在平淡中蕴含了傲视群雄的气势

果然是神作!
作者: zylthinking    时间: 2011-12-02 17:17
顶!!!

   通过我上穷碧落下黄泉,这20年来孜孜不倦的求索与思考,这就是lisp和oop的真谛。 ...
塑料袋 发表于 2011-12-02 17:06


语法帝看到了, 又要跳脚了
作者: zhaohongjian000    时间: 2011-12-02 17:19
加了个油各位,我看好你们欧。
作者: 塑料袋    时间: 2011-12-02 17:23


神作啊

看了塑料带 你这个评论

我如醍醐灌顶
焕然大悟
”什么思想都是扯淡“-----说出 ...
keytounix 发表于 2011-12-02 17:11



    原来是你啊,闻西?!!难道国家又需要我了???

  我如醍醐灌顶---和六祖慧能多么如出一辙啊,见性成佛,顿悟无上妙谛。
  焕然大悟-------对呀,菩提本无树,明镜亦非台。

  那棒喝一般的机锋妙语,那将暗合万物音律的编程思想,那如拈花摘叶手一般上下纷飞的手指,还有那备马蒂尼,无一处不深深地出卖了你啊
作者: keytounix    时间: 2011-12-02 17:27
回复 6# 塑料袋


    呵呵
那一定是你的错觉
作者: msappleggle    时间: 2011-12-02 17:32
这样的贴也能哗然,无聊的不少
作者: OwnWaterloo    时间: 2011-12-02 18:47
lisp只有表达式,没有表达式与语句的区别好吗?
只用逗号表达式? let 一个看看?
lz发来调侃而已, 楼下一堆人还当真了?
作者: msappleggle    时间: 2011-12-02 19:04
我日,还真有当真的!
作者: zhaohongjian000    时间: 2011-12-02 21:12
好像吵不起来啊,那算了,3。
作者: 塑料袋    时间: 2011-12-03 22:18
真无聊

C版快废了. 一帮2B成天满口胡喷什么语言影响思想, 搞的现在开个lisp的玩笑都没人欣赏了.

而且还有几个人,成天开马甲小号上来喷什么语言,其实语言这东西有啥好喷的啊,它就是个工具.


说"语言影响思想",基本上都是小屁孩, 而且因为是小屁孩,所以他们有闲,能泡坛子
作者: KanonInD    时间: 2011-12-04 13:03
本帖最后由 KanonInD 于 2011-12-04 13:06 编辑
好像吵不起来啊,那算了,3。
zhaohongjian000 发表于 2011-12-02 21:12


要是吵得起来,Functional编程版就不至于那么冷清了。
作者: OwnWaterloo    时间: 2011-12-04 20:17
自称不会lisp的老古董还真敢当自己看懂了这个玩笑
lisp与C就是阳春白雪与下里巴人之分。
作者: 塑料袋    时间: 2011-12-04 22:03
自称不会lisp的老古董还真敢当自己看懂了这个玩笑
lisp与C就是阳春白雪与下里巴人之分。
OwnWaterloo 发表于 2011-12-04 20:17



    lisp就是一坨渣啊

  公理1) : 最为广大人民群众所喜闻乐见的文艺形式,才是真正的艺术.  
  
       所以说波多野结衣,她就是艺术,而不是色情.

       所以说CCTV上的领导开会,这个是色情,而不是艺术


       引申到C语言,它最为计算机的广大工程师所接受,它就是艺术,而不是色情.



  公理2) 自然科学来源于生产实践,最终还要回到生产实践中去.

       所以说你们这些有闲有精力的学生,可以挺C++挺着玩.  毕竟android和qt之类的是用C++搞的,  C++还是回到了生产实践中去.

       至于lisp么, 按照赫鲁晓夫的说法,应该"扔进垃圾堆再跺跺平".   







lisp与C就是阳春白雪与下里巴人之分。


如果应把语言分阶级的话,那么显然lisp就是个白专主义道路.,而且是唯心的.

下里巴人? 高贵者最愚蠢,卑贱者最聪明!
作者: OwnWaterloo    时间: 2011-12-04 22:21
回复 15# 塑料袋

关于生产实践。
1. emacs算不算生产实践? autoCAD算不算? gimp算不算?
2. 如果不能投入生产实践就应该被扔进垃圾堆再跺跺平
且不说文学什么的, 许多数学、物理是不是也该被扔进垃圾堆再跺跺平?


>> lisp就是一坨渣啊
究竟是不是, 自然会有人去评判。
不过, 这正是我所希望的回答。


至于其他的什么波多野、 CCAV、 白专主义、 唯心的, 不予置评
作者: cjaizss    时间: 2011-12-04 22:29
不知道该怎么说这个东西,我觉得lisp的唯一好处就是写编译器方便,那么容易写脚本嵌在你C语言开发的程序里。
总比以下我为了某个项目配置算法而设计的垃圾语言要好的多,当然这个与其是为了项目,倒不如说是为了练手:
d[1],8,<<,d[0],|,float,1000.0,*,65535.0,/,
                3.0,+,
                dup,0,F[1],F,<,?goto a,dup,F[1],length,1,-,F[1],F,>=,?goto b,
                0,:f,dup,F[1],F,dup2 2,>=,?goto g,1,+,goto f,:g,1,-,
                dup,F[1],F,exchange,dup,1,+,F[10],F,exchange,dup,F[10],F,exchange,1,+,F[1],F,
                dup2 4,dup2 4,-,dup2 3,dup2 3,-,*,dup2 1,dup2 5,-,/,dup2 2,+,
                quit,
                :a,pop,0.0,quit,
                :b,dup,F[1],length,1,-,F[1],F,3.0,+,<,?goto c,quit,
                :c,pop,F[1],length,1,-,F[1],F,quit
作者: 塑料袋    时间: 2011-12-04 22:34
回复  塑料袋

关于生产实践。
1. emacs算不算生产实践? autoCAD算不算? gimp算不算?
2. 如果不能投 ...
OwnWaterloo 发表于 2011-12-04 22:21



    在我看来,lisp就是个渣.

    我一向给立场明显,不含糊其词,而且大多数时候给别人他们想听的回答


    autocad,gimp这些玩意, 最关键的核心图形学, lisp处在了可有可无的位置上.

    也许是受到俺的见识所限, 至少我不认为lisp有什么神秘的.

    而且,lisp和数学物理等科目不同.  数学可能无法产生立即的效果,因为这是个纯理论性的科目;但是lisp本来就是为了应用而生,纯应用性的,却被应用所抛弃. 还好意思蹦达嘛呀.

   lisp之所以NB,很大程度是因为炒做,就和山东的大蒜没什么区别.

  本坛子上几乎100%的人都是人云亦云. 某个白专教条的书上说lisp牛逼了,大家就都一窝蜂的认为它NB.

  就算它不是炒做而是确实牛逼,那么坛子上也不见得就有人能够认识到它NB在那里.
作者: cjaizss    时间: 2011-12-04 22:37
在我看来,lisp就是个渣.

    我一向给立场明显,不含糊其词,而且大多数时候给别人他们想听的回 ...
塑料袋 发表于 2011-12-04 22:34



    你可以相对比较容易的实现一个lisp编译,把它嵌到你的工程中,方便处理配置。这是我想的到的lisp唯一存在的理由。恩,下次我就用lisp嵌进去吧。
作者: 塑料袋    时间: 2011-12-04 22:42
你可以相对比较容易的实现一个lisp编译,把它嵌到你的工程中,方便处理配置。这是我想的到的lisp ...
cjaizss 发表于 2011-12-04 22:37



   我还知道lisp有一个用处.

  就是opengl shader language在经过前端处理后,输出的东西和lisp很相象.

  mesa driver需要处理这个语法树,然后把这个shader交给GPU.
作者: cjaizss    时间: 2011-12-04 23:01
我还知道lisp有一个用处.

  就是opengl shader language在经过前端处理后,输出的东西和lisp很相 ...
塑料袋 发表于 2011-12-04 22:42



    之所以跟lisp很像,因为这样的语法很简单,处理不用写上复杂的编译算法,所以过程表示(IR)基本都用这样的简单语法
作者: OwnWaterloo    时间: 2011-12-04 23:24
在我看来,lisp就是个渣.
我一向给立场明显,不含糊其词,而且大多数时候给别人他们想听的回答
塑料袋 发表于 2011-12-04 22:34


所以虽然与你立场不同, 但还是很喜欢你说话不含糊这点。


autocad,gimp这些玩意, 最关键的核心图形学, lisp处在了可有可无的位置上.
塑料袋 发表于 2011-12-04 22:34

autocad, gimp我不玩。 但我玩emacs。

说emacs最关键的是编辑, 也许无法反驳。
但如果没有emacs lisp, 那emacs真的就是个渣了 —— emacs lisp,即使它在lisp中算渣的, 但绝对不是处在可有可无的位置。
下面是emacs作者的话:
http://www.gnu.org/gnu/rms-lisp.html
The original Emacs did not have Lisp in it.
...
The language that you build your extensions on shouldn't be thought of as a programming language in afterthought; it should be designed as a programming language. In fact, we discovered that the best programming language for that purpose was Lisp.




也许是受到俺的见识所限, 至少我不认为lisp有什么神秘的.
而且,lisp和数学物理等科目不同.  数学可能无法产生立即的效果,因为这是个纯理论性的科目;但是lisp本来就是为了应用而生,纯应用性的,却被应用所抛弃. 还好意思蹦达嘛呀.
lisp之所以NB,很大程度是因为炒做,就和山东的大蒜没什么区别.
塑料袋 发表于 2011-12-04 22:34


不对, lisp从一开始就是纯理论性研究, 一种思维体操而已。 原本就只打算作为一种图灵机定义。
甚至当McCarthy听说一个学生打算实现lisp时, 还告诉他不要将理论与实践混淆。
http://www.paulgraham.com/icad.html

Steve Russell said, look, why don't I program this eval..., and I said to him, ho, ho, you're confusing theory with practice, this eval is intended for reading, not for computing.

...

Suddenly, in a matter of weeks I think, McCarthy found his theoretical exercise transformed into an actual programming language-- and a more powerful one than he had intended.

So the short explanation of why this 1950s language is not obsolete is that it was not technology but math, and math doesn't get stale.




本坛子上几乎100%的人都是人云亦云. 某个白专教条的书上说lisp牛逼了,大家就都一窝蜂的认为它NB.
就算它不是炒做而是确实牛逼,那么坛子上也不见得就有人能够认识到它NB在那里.
塑料袋 发表于 2011-12-04 22:34


确实坛子上没见过有多少人能够认识到它NB在那里
作者: cjaizss    时间: 2011-12-05 01:01
之所以跟lisp很像,因为这样的语法很简单,处理不用写上复杂的编译算法,所以过程表示(IR)基本都用这 ...
cjaizss 发表于 2011-12-04 23:01



    什么叫复杂语法?简单点说,就是有中缀运算符的语法
作者: 塑料袋    时间: 2011-12-05 14:28
不对, lisp从一开始就是纯理论性研究, 一种思维体操而已。 原本就只打算作为一种图灵机定义。
甚至当McCarthy听说一个学生打算实现lisp时, 还告诉他不要将理论与实践混淆。
OwnWaterloo 发表于 2011-12-04 23:24



lisp隶属于语言,语言隶属于描述方式,描述方式是为思考服务的。


思考么,还和纯理论沾边。

语言么,任何一种语言都是实践,而不是理论。


lisp首先是一种语言,所以它是实践,而且是一种又被实践所抛弃的语言。


语言是工具而且仅只能是工具,这是放诸四海而皆准,颠扑不破的真理。




我不明白C版那些坛头版霸怎么就那么大言不惭,颠倒黑白,指鹿为马:

一边又嘲笑讥讽着linus大神关于的C++观点。
一边又引用别的所谓“语言权威”的口水,来喷坛子上的众狼友。

这纯粹和借耶稣打到如来佛,借真主打败耶稣一样可笑。

而且,即使是那些别的“语言权威”,也从没敢说过“语言影响思想”,这个反动论调纯粹是那些坛头版霸鼓捣出来的,他们怎么就这么敢冒天下之大不讳?
作者: KanonInD    时间: 2011-12-05 14:33
本帖最后由 KanonInD 于 2011-12-05 14:36 编辑

确实没多少人了解抽象语法树、S表达式、宏、lambda算子、闭包的NB, 包括楼上。
作者: 塑料袋    时间: 2011-12-05 14:39
确实没多少人了解抽象语法树、S表达式、宏、lambda算子的NB, 包括楼上。
KanonInD 发表于 2011-12-05 14:33



    那你懂么???

  你总整名词,要是拿不出来具体的例子的话,那就从根本上违反了科学。因为科学来源于实践,而且注定要去指导实践。

  
  整800个名词又有什么用?

  而且以违反科学的路子去学习计算机的话,不如趁早转行
作者: 塑料袋    时间: 2011-12-05 14:47
确实没多少人了解抽象语法树、S表达式、宏、lambda算子、闭包的NB, 包括楼上。
KanonInD 发表于 2011-12-05 14:33



    毛主席说,凡事就怕认真二字

   所以我今天就想知道,这些玩意到底NB在那里???
作者: KanonInD    时间: 2011-12-05 15:27
毛主席说,凡事就怕认真二字

   所以我今天就想知道,这些玩意到底NB在那里???
塑料袋 发表于 2011-12-05 14:47



   
   我还知道lisp有一个用处.

  就是opengl shader language在经过前端处理后,输出的东西和lisp很相象.

  mesa driver需要处理这个语法树,然后把这个shader交给GPU.


其中,抽象语法树和S表达式就在你20楼的回复那里。
作者: OwnWaterloo    时间: 2011-12-05 16:52
lisp隶属于语言,语言隶属于描述方式,描述方式是为思考服务的。


思考么,还和纯理论沾边。

语言么,任何一种语言都是实践,而不是理论。


lisp首先是一种语言,所以它是实践,而且是一种又被实践所抛弃的语言。


语言是工具而且仅只能是工具,这是放诸四海而皆准,颠扑不破的真理。
塑料袋 发表于 2011-12-05 14:28


你这段话至少有两个问题。

首先是刻意强调lisp在实践上的作用而看轻lisp在理论上的作用。
lisp在理论研究上的作用我肯定没法全部列举, http://www.paulgraham.com/icad.html 里有一些, 在"What Made Lisp Different" 里。
lisp发明的许多东西一度被其他语言抛弃, 最近又慢慢被新发明的语言捡起。

其次, 认为lisp只用于理论研究。
有实践派的lisp, 比如common lisp。http://en.wikipedia.org/wiki/Common_Lisp#Applications
但不会有公司愿意使用common lisp开发, 公司需要考虑成本问题。
雅虎某个网站就一度是被 Paul Graham(也是上面引文的作者) 用common lisp实现的。 但当他离开后, 就被用C++与perl改写了。
所以我才说lisp与C是阳春白雪与下里巴人。



我不明白C版那些坛头版霸怎么就那么大言不惭,颠倒黑白,指鹿为马:

一边又嘲笑讥讽着linus大神关于的C++观点。
一边又引用别的所谓“语言权威”的口水,来喷坛子上的众狼友。

这纯粹和借耶稣打到如来佛,借真主打败耶稣一样可笑。

而且,即使是那些别的“语言权威”,也从没敢说过“语言影响思想”,这个反动论调纯粹是那些坛头版霸鼓捣出来的,他们怎么就这么敢冒天下之大不讳?
塑料袋 发表于 2011-12-05 14:28

嘲笑linus的理由很简单:
1. 他嘴巴本来就臭, 他的诸多"名言" 都被记录在案
2. 他是实现linux kernel的, 不是研究语言学的
你是研究kernel的, 所以觉得他是大神。
但在语言学方面他的贡献为零。

说语言怎么怎么如何如何时, 引用John McCarthy、Paul Graham的话是最正常不过的事。
引用linus才是冒天下之大不讳。

语言影响思想什么的, Paul Graham 的 hacker and painter 里就有。其他还有很多研究语言的都有这样的结论。
只打算用C的人是不会关心也无法体会的。
作者: pan_0326    时间: 2011-12-05 17:05
什么叫复杂语法?简单点说,就是有中缀运算符的语法
cjaizss 发表于 2011-12-05 01:01



甚以为然!

lisp是一种语法简单的语言,但书写并不简单---那些括号!既然采取了前缀表达式,应该成为
括号最少的语言,但讽刺的是它的括号最多.
c采取了前缀表达式和中缀表达式混合的语法.虽然它尽力做到简单,但与lisp仍有距离,编译
器不是人人都能写的.我正在研究的一个课题是将c完全前缀表达式化,变成语法最简单的语
言,括号极少的语言.
lisp语法简单,书写不简单,编译器也不简单(由于宏).c采取了简单宏,所以前缀表达式c将比
lisp还简单:语法简单,书写简单(简化括号,去除分号),编译器也简单.

fn [int add int x int y, \ 参数和返回都是值(单注释)
    return + x y
]

fn [int main,
    printf["%d\n" * add 2 3 4] \ 不定参数仍需括号
    return 0
]
作者: 塑料袋    时间: 2011-12-05 17:10
其中,抽象语法树和S表达式就在你20楼的回复那里。
KanonInD 发表于 2011-12-05 15:27



    笑话,我要是不说的话,你看到过这个玩意么?

   别说看没看到过,就说个最简单的,知道怎么离线编译shader程序么?
作者: zhaohongjian000    时间: 2011-12-05 22:12
好啊好啊,大家响应了我的号召,开始吵架喽,加了个油,我看好你们欧。
作者: flw    时间: 2011-12-06 00:08
真有意思

谷歌的输入框居然自动加黄框了。
作者: huxk    时间: 2011-12-06 09:20

作者: wsw1wsw2    时间: 2011-12-06 09:33
本帖最后由 wsw1wsw2 于 2011-12-06 09:35 编辑

我一直用clisp做系统管理的,以前用perl,现在觉得perl语法不能随便自定义(为什么要说Larry always right?去他妹的!),要改个语法还要看那个可怕的perly.y

clisp呢,一个macro或者函数就是一门语言,比如loop,format等等,当然自己实现个reader macro可以随便定义想要的语法。

当然我是觉得是因为系统管理全部自动化后我就没什么事情可做了,闲得蛋疼,所以开始把perl脚本全部换成clisp的脚本。我发现perl脚本和clisp都可以quick-and-dirty地快速搞定一些事情,clisp可以慢慢得修改、进化,把东西一点一点抽象,从而我写了个cl-salib(common-lisp-system-administrator's-library)库。然而perl基本上是写了个脚本快速处理好了一件事,基本就不会再去看它了,如果要修改perl脚本(不论是不是我写的)我还不如直接重写一个。

所以就我而言,觉得common lisp还是有用的,当然我也用emacs。所以结论是lisp也不是太渣啦。
作者: KanonInD    时间: 2011-12-06 10:51
回复 32# zhaohongjian000

只有一个塑料袋不够吵啊
作者: zhuomingliang    时间: 2011-12-07 13:20
我一直用clisp做系统管理的,以前用perl,现在觉得perl语法不能随便自定义(为什么要说Larry always right? ...
wsw1wsw2 发表于 2011-12-06 09:33



    Perl 6  的语法可以随便自定义的。不但语法可以随便自定义,而且还可以随便修改行为。
作者: KanonInD    时间: 2011-12-07 16:46
本帖最后由 KanonInD 于 2011-12-07 19:28 编辑
笑话,我要是不说的话,你看到过这个玩意么?

   别说看没看到过,就说个最简单的,知道怎么离 ...
塑料袋 发表于 2011-12-05 17:10


wing3d上看过类似的,让一个人理解他没见过的东西和他所在领域以外的东西,是有难度的,所以,为降低难度,讲他见过的东西,为此,28楼引用了20楼的内容。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2