负暄琐话

我的email: rot47('649@ 6(hF+`hd"w=92vhG{>}G3"@l M >:>6?4@56 \F')

囧囧ID:g9yuayon
[修改头像]
785429次访问,排名36好友9人,关注者11
g9yuayon的文章
原创 239 篇
翻译 4 篇
转载 48 篇
评论 794 篇
g9的公告
最近评论
xingranliuyun:囧囧囧rz。这难道是给脑残大学脑抽系汗语颜文学专业同学们出的毕业大补考的考试题?
GlacJAY:呃,那个讨论看不到了。被河蟹了?
Googol:这些更多是民众发泄的途经吧,作为对政府部门不作为的嘲讽。
andrewleung:说得好,支持!
alextooter:ff可是用的完全的自己内存管理。。

最近ff3非常好,值得试试看。
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
    相册
    旅游
    计算机科学
    Lambda the Ultimate
    软件开发
    Reddit编程专栏(RSS)
    正在读的书
    存档

    翻译

    翻译 lamdba算子4:布尔值和选择

    Lambda算子里的布尔值和选择 原文在这里。既然Lambda算子里有了数的概念,我们想进行任意的计算就只需要两件东西了:怎么表示选择,和怎么表达重复操作。我们先聊聊怎么表示布尔值(也就是非真即假的二元集合)和选择,然后再讨论重复和递归(友情预告:人见人爱的Y Combinator终于可以出场了)。 我们一般把选择表示为if/then/else的表达式,和大多数编程语言的选择语句没有区别。丘齐数的基本模式无非是把一个数表达为一个函数。这个函数把它自己加到另外一个函数上。我们继续沿用这个模式,把true和false也表达为对自己的参数执行if-then-else操作的函数: let TRUE = lambda x y . x let FALSE = lambda x y . y 现在我们就可以写“if-then-else”函数了(记到哈,lambda算子理论里所有东东都是函数)。这个函数的第一个参数是一个条件表达式,第二个参数是当第一个参数为真时返回的表达式,而第三个参数自然是当第一个参数为假时返回的表达式了。相当于我们的if cond then true_expr阅读全文>

    发表于 @ 2006年08月27日 08:55:00|评论(loading...)|编辑

    翻译 lambda算子3:阿隆佐.丘齐(Alonzo Church)的天才

    lambda算子3 阿隆佐.丘齐(Alonzo Church)的天才:Lambda算子里的数 前面建立了lambda运算的基本规则,就可以用lambda算子做点有意思的东西了。开始前为方便计,我们先来点语法糖花差花差,用来命名函数。这些语法糖可以让复杂的公式好写一点。 我们用"let" 来引入一个“全局”函数(也就是说,我们用这个函数时,不用在每个表达式里定义一次): let squer = lambda x. x^2 这个式子申明了一个叫"square"的函数,定义为 lamdba x. x^2。如果我们有一个表达式 "square 4",上面的"let"意味着这个表达式和下面这个表达式一样: (lambda square. square 4)(lambda x. x^2)。这个"let"是从Common Lisp或者Scheme里借来的。Lambda算子里可没有这个东西。数学家推崇“如无必要,毋增实体”。这些关键字不入他们的法眼。不过对写惯了程序的我们来说,这些句法糖就可爱多了。 我们的例子里会用到数字和算术操作符。不过记住lambda算子里根本没有数字。阅读全文>

    发表于 @ 2006年08月14日 14:47:00|评论(loading...)|编辑

    翻译 lambda算子3:阿隆佐.丘齐(Alonzo Church)的天才

    lambda算子3 阿隆佐.丘齐(Alonzo Church)的天才:Lambda算子里的数 前面建立了lambda运算的基本规则,就可以用lambda算子做点有意思的东西了。开始前为方便计,我们先来点语法糖花差花差,用来命名函数。这些语法糖可以让复杂的公式好写一点。 我们用"let" 来引入一个“全局”函数(也就是说,我们用这个函数时,不用在每个表达式里定义一次): let squer = lambda x. x^2 这个式子申明了一个叫"square"的函数,定义为 lamdba x. x^2。如果我们有一个表达式 "square 4",上面的"let"意味着这个表达式和下面这个表达式一样: (lambda square. square 4)(lambda x. x^2)。这个"let"是从Common Lisp或者Scheme里借来的。Lambda算子里可没有这个东西。数学家推崇“如无必要,毋增实体”。这些关键字不入他们的法眼。不过对写惯了程序的我们来说,这些句法糖就可爱多了。 我们的例子里会用到数字和算术操作符。不过记住lambda算子里根本没有数字。阅读全文>

    发表于 @ 2006年08月14日 14:45:00|评论(loading...)|编辑

    转载 lambda算子 1.b

    上上周就快写完这篇时,IE突然当掉,写的东西烟消云散。俺也元气大伤。这次吸取教训,不用CSDN的在线工具写了。这样的坏处是把文章拷贝到CSDN时,格式难免出错,还得手工调整一下。CSDN什么时候可以实现confluence的在线备份功能呢?还是继续八卦lambda: 自由 vs 有界标识符 标识符和变量其实是一个意思。我记得国内教材里很少用标识符这个说法。不过既然原作者用这个说法,我就跟着用了。上次说到Currying解决了如何处理多参数的问题。在讨论怎么使用lambda前,我们还要解决一个细微但重要的语法问题:封闭(closure),或者叫完全有界(complete bounding)。这里的有界和一阶谓词逻辑里的有界没有本质区别,对一阶谓词逻辑熟悉的老大们可以放心跳过。其实有界涉及的定义很直观,我们看一个例子先。假设我们有一个函数lambda x y. (lambda y. y + 2) + x + y +z,lambda y. y+2里的y和它后面的y是不是一样的呢?显然它们是不一样的。为了处理这种区别,我们引入了有界。当一个lambda表达式被计算时,它不能处理无界阅读全文>

    发表于 @ 2006年06月12日 11:14:00|评论(loading...)|编辑

    翻译 lambda算子简介1.a

    接着前两天的转载继续写。上次说到lambda算子的函数只接受一个参数。那怎么处理多个参数呢?如果只有一个参数,那岂不是连加法都不能实现?这当然难不倒像丘齐这样的天才。于是, lo and behold, 一个我们至今在编程里常用的技巧粉墨登场: Currying 据说Currying翻译为局部套用函数,也不知真假。喜欢吃印度美食的老大们不要激动。Currying和咖喱没有半点关系。这个技巧以逻辑学家Haskell Curry的姓命名。Haskell Curry也是名动一时的人物。他和Moses Schönfinkel 共创了组合逻辑(combinatory logic),并把这们学科发扬光大。当初Curry搞出组合逻辑,主要是为了在数理逻辑里避免使用变量。后来搞函数编程的人们发现,组合逻辑是一类函数编程语言的理论基础。一些函数语言里常见的特性,比如说高阶函数合lazy evaluation, 就是用组合逻辑里的combinator实现的。当初Alanzo Church对这个理论也相当熟悉。难说lambda理论不是受了组合逻辑的影响。大牛Philip Wadler为了纪念Cu阅读全文>

    发表于 @ 2006年05月29日 08:30:00|评论(loading...)|编辑

    转载 博客推荐:good math, bad math之Lambda算子简介

    Good math,bad math是我最近发现的一个博客。作者Mark Chu-Carroll写的一系列关于计算机科学理论的文章深入浅出,通俗易懂,属于茶余饭后绝佳的消遣读物。俺一直想写点介绍lambda caculus的小文章,但看了他的“My Fravorite Calculus: Lambda”后,就打消了这个念头。有这么好的文章,转贴就行了,自己就不用再写不入流的文章。今天先转介绍lamdba calculus的第一部分。先申明一下,俺的翻译在不影响作者原意的基础上(但愿能做到到),有时也插科打诨加点8卦。如果谁觉得文章垃圾,完全因为俺水平有限。原文绝对精彩。另外,俺数学方面的术语止于大一微积分。所以术语用错了,还请多多指正。 在计算机科学尤其是是编程语言领域,我们常用一种算子:Lambda Calculus。逻辑学家也常用Lambda Calculus 来研究计算和离散数学结构的本质。其实当初Alanzo Church(就是丘奇-图灵论点里的那位丘奇老大了)和Stephen Cole Kleene(就是自动机理论里Kleene Star那个Kleene了)推出这个La阅读全文>

    发表于 @ 2006年05月22日 06:54:00|评论(loading...)|编辑

    原创 我最恨的狗屁翻译

    就是把Code Complete《代码大全》了。不知道是那个SB译者翻译的,也不知道是那个SB出版社通过这个书名,搞得一部好好的经典听上去像东拼西凑的盗版书。现在倒好,谬种流传。说起这部经典,都用这个让人浑身起鸡皮疙瘩的书名。阅读全文>

    发表于 @ 2006年04月02日 09:09:00|评论(loading...)|编辑

    原创 Java门派的风险

    正在看周思博(www.joelonsoftware.com)的新文章。这次是疯狂攻击Java。主要论点是:Java不够难,作为工业语言不错,但作为学校的教学语言,就忒差了。学校应该用指针和递归这类东西把真正的程序员筛选出来。对指针(代表系统底层)和函数编程(代表高层抽象)的学习是脱胎成优秀程序员的必经之路。看这种滔滔雄辩的文章最爽了。摘取一段哈: 不了解泛函编程,你不可能发明MapReduce -- 让Google获得超大规模扩展能力的算法。Map和Reduce这两个术语就是来自Lisp和函数编程。现在看来,MapReduce对每个记得6.001等同课程的人都是显而易见的选择:纯函数编程没有副作用,所以才能让并行处理出奇地容易。恰恰是Google而不是微软发明了MapRequest在某种程度上说明了为什么微软还在努力追上Google的基本搜索功能的时候,Google已经开始需求解决另一个问题:开发天网^H^H^H^H^H^H这个世界上最大规模的并行超级计算机。我觉得微软还不清楚他们到底落后了多少。 还有这一段:除开指针和递归本身的重要性以外,他们的真正价值在于开发大型系统需要某阅读全文>

    发表于 @ 2005年12月30日 12:43:00|评论(loading...)|编辑

    原创 强烈推荐:给计算机系学生的建议

    在中文blog上推荐的英文文章从来回应寥寥,所以有时只好遗憾地看着别人的雄文在英语社区流行,比如说www.joelonsoftware.com上的精妙杂文。还好,网上总有热情洋溢的自愿者。这不,Joel的一篇精妙文章被翻译成中文了。强烈推荐一把:http://chinese.joelonsoftware.com/Articles/AdviceforComputerScienceC.html 下面是转贴的全文。如果你好奇的话,文中第一张照片是University of Toronto的University College, 第二张是Bloor Street上的书店Chapters。第三张是University College外的小球场。第四章是University of Toronto的King's College外面的King's Circle。最后一张是York University的毕业典礼。 给计算机系学生的建议 作者: 周思博 (Joel Spolsky) 译: Chen Bin 2005年1月2日 虽然大概一两年前我还在夸夸其谈桌面阅读全文>

    发表于 @ 2005年09月16日 00:39:00|评论(loading...)|编辑

    原创 软件工程师需要数学的真正理由

    软件工程师们常常宣称他们从来不用在大学里学到的任何数学知识. 说到这个,他们还会说连大学里学到的计算机专业知识都用不了多少。我搞了三十年数学,就让别人来谈计算机专业方面的情况,不过就数学的使用情况而言,我不得不坦白承认那些软件工程师太对了:他们就是用不着大学里学的数学。 阅读全文>

    发表于 @ 2002年02月25日 08:52:00|评论(loading...)|编辑

    Csdn Blog version 3.1a
    Copyright © g9