免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 18849 | 回复: 85
打印 上一主题 下一主题

最近入了本SICP,发现自己对Lisp没以前那么反感了……好像括号看起来还不错…… [复制链接]

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-28 22:19 |只看该作者 |倒序浏览
本帖最后由 starwing83 于 2012-03-28 22:40 编辑

额……主要是灵活的表达方式和隐式return很吸引人。跟C/C++完全是不同的思想。在SICP的第一章看到了大量的设计模式的影子,却更简单,更直接。

举个例子,求不动点那个高阶函数,其实就是模板模式的原型,但是没有OO的掺杂感觉更加自然了。

不过对于更好的Lisp实现的渴望更强烈了。真的感觉Lisp很难被实现得简单高效优雅,太难了。


UPDATE:阿门,数学术语都写错了……赶紧编辑掉……太丢人了……

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
2 [报告]
发表于 2012-03-28 22:28 |只看该作者
lisp哪有那么好哦,不过是炒做而已。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
3 [报告]
发表于 2012-03-28 22:38 |只看该作者
回复 2# 塑料袋


    其实不干炒作的事儿,是我自己个人的感觉。怎么说呢,也许是因为在纸上看到了排版良好的lisp代码了吧。以前看《算法导论》的时候也觉得那个伪代码真的好优雅好清晰。也许看电脑上的代码看多了,偶尔看看纸质的代码,真的会感觉很清新吧。

lisp本身问题还是蛮多的。我这里没说lisp是完美的语言,只是说lisp也有自己的美感,在看了SICP以后更加清晰的感觉到lisp独特的美了。所谓瑕不掩瑜,现在才有这样的感觉,以前只盯着瑕疵看,自然会有偏见。

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
4 [报告]
发表于 2012-03-28 22:48 |只看该作者
starwing83 发表于 2012-03-28 22:38
回复 2# 塑料袋


lisp的特点,就是和iphone一样,是一个装B利器。

不过好歹iphone还真有点用,但是lisp套用赫鲁晓夫的话:应该扔进历史的垃圾堆,然后再跺跺平。


lisp里边,如果没了递归,没了对运算的运算,没了运算封闭集,没了变换,那它狗屁也不是。

但是真玩这些东西的人,没人在lisp里边玩,人家都是玩的归纳法,同构,群,环,域.....这些东西。而且lisp远没有抽象代数里来的缜密。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
5 [报告]
发表于 2012-03-28 22:51 |只看该作者
回复 1# starwing83

找到了记得分享啊……  话说gambit/ecl研究过没……

模板模式是个啥?

最后,括号……
罪魁祸首其实是functional style。只要写成这种风格,括号就不会少……  除非有类似pipe的东西将嵌套打开。
而lisp只是在此基础上再多了一层最外层的括号而已。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
6 [报告]
发表于 2012-03-28 22:53 |只看该作者
回复 4# 塑料袋


    SICP说lisp是被“发现”而不是被“发明”的,最先只是在一篇论文里面定义出来以方便数学证明而已,是纯数学的东西。只是后来才发现似乎在计算机上面跑也挺简单的,才变成实际的计算机语言的。总的来说,最开始的应用(至少是在SICP里面的应用)是纯教学式的伪语言,只是恰好能跑而已。

SICP用Lisp而不用类似《算法导论》那种伪语言。窃以为目的是为了利用语言的结构不至于干扰书中对于程序组织等知识的讲解。算法导论的伪语言是纯状态转换式的语言,而SICP侧重于操作的递归组合构建而不是探讨算法状态的转换。所以至少SICP选择Lisp倒不是为了装13,而是的确有实际的原因的。

至于用Lisp装逼的:这年头用什么东西装逼的没有呢,还有人头上扣着菜盆出去装逼的呢。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
7 [报告]
发表于 2012-03-28 22:58 |只看该作者
回复 5# OwnWaterloo


    看过gambit。我个人不喜欢生成C的方式。我还是喜欢Lua这种env+vm式的环境,舒服一些。需要性能可以JIT的那种。生成C很不好搞,容易搞砸。ECL是common lisp暂时不考虑了吧。cl,额,我目前还是有点怕,觉得太大了,无所不包。

模板模式?template method pattern,模板方法模式- -提到的时候老是忘记加“方法”这个词。其实tmd说白了就是把一堆的虚函数打个包给某个暴露的函数使用,lua里面天天用的东西,lisp显得更干净一些而已。

SICP提到了lisp的cons甚至都可以用lambda表示,深有感悟~

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
8 [报告]
发表于 2012-03-28 23:09 |只看该作者
回复 7# starwing83

vm的就更多了……

cl有些方面还是很practical的。比如scheme连模块机制都没有就只能用来玩……
不过有些方面又过于practical了……  比如为了容易将其他代码改写为cl就加入了goto……


>> 其实tmd说白了就是把一堆的虚函数打个包给某个暴露的函数使用
这个定义与template method应该有出入……  不过我不想扯dp那些东西……


>> SICP提到了lisp的cons甚至都可以用lambda表示,深有感悟~

这个与:
one = \f x -> f x
true = \x y -> x
false = \x y -> y
if => \f x y -> f x y

不都是church encoding的内容嘛……

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
9 [报告]
发表于 2012-03-28 23:16 |只看该作者
回复 8# OwnWaterloo


    这个写法…………看来你真的入Haskell教了………………还是只是懒得打括号?

虽说haskell咋地咋地,不过我觉得还是比lisp实用一些,目前对lisp的态度仅限隔着笼子观赏。

模板方法模式的具体定义是指一个基类将自己的虚函数定义为保护的,暴露一个使用这些虚函数的实际工作函数以供外界使用。子类可以通过继承基类,并覆盖那些保护虚函数,以修改由公开的实际工作的非虚函数的功能。公开函数用于指定流程,而保护虚函数用于指定具体的可配置的步骤。

真的是动态语言玩剩下的东西。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
10 [报告]
发表于 2012-03-28 23:18 |只看该作者
回复 8# OwnWaterloo


    哦,最后一点忘了。关于曲奇编码,真的是好东西哇,装逼利器哇。而且也的确很好玩。

实际应用上,其实以前云风提到的那个lua的“快速”的point类就是用了这个类似的原理。不过他当时只提到了快速,没告诉我们这种方式内存占用量会大增………………

话说有人认识云风不?你觉得投奔他有前途不?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP