论坛首页 综合技术论坛

回albertLee:关于Category Theory 和Monad

浏览 24230 次
该帖已经被评为精华帖
作者 正文
   发表时间:2007-12-18  
有很多人都存在类似 canonical 这样的侥幸心理,希望自己已有的知识和已掌握的工具能够带来不输于数理逻辑研究成果的力量。但很不幸,科学是疯狂的,未来是残酷的,像T1所说的那样的大规模技术贬值会不断推翻人们这样的从传奇小说里沿袭下来的幻想。
Java 的面向对象不是号称能够模拟世间万物吗?上次发过一个延续,不知道专家组还能不能续写传奇,模拟一下静态类型推断?

PS: T1大人不要和 canonical 讨论 CPS 的话题。他的编程世界里只有条件分支和循环,所以举一些更“贴近生活”的例子即可。
0 请登录后投票
   发表时间:2007-12-18  
引用
有很多人都存在类似 canonical 这样的侥幸心理,希望自己已有的知识和已掌握的工具能够带来不输于数理逻辑研究成果的力量

这话从何说起

to javavsnet: 我已经举过太多的例子了,你没兴趣看,我也没办法。另外我讲的其实只是个简单的道理,只是有些人在内心是从不承认的。

to T1: 你不要总是把问题归结到一个人身判断上,这很无聊。

引用
haskell里应用monad的一个作用是引入imperative风格。但是这里的基本原理在于函数复合自然保证了序关系 f(g(h(x)))

我的这句话可能是容易引起误解。我并不是说monad要解决的问题是序关系,而是接着前一个帖子说我们如何部分直观的去理解monad。我只是说序是一种自然的关系,并不依赖于monad存在。

即使所有的数学原理都是清楚的,但是如果没有Walder 1992的论文,大家对monad的积极性未必有现在这么高。

我对于monad的具体定义及操作过程是清楚的,也很理解副作用如何进入pure language. 但是这一切并不足以让我感觉可以用monad干点什么新鲜的事情,也没有让我感到对于monad的进一步发展的方向在什么地方。如果每个人都觉得自己很懂的样子,我觉得也没什么讨论的必要了。

0 请登录后投票
   发表时间:2007-12-18  
引用
我对于monad的具体定义及操作过程是清楚的,也很理解副作用如何进入pure language. 但是这一切并不足以让我感觉可以用monad干点什么新鲜的事情,也没有让我感到对于monad的进一步发展的方向在什么地方。如果每个人都觉得自己很懂的样子,我觉得也没什么讨论的必要了。



俗话说,人以类聚物以群分.至少在我看来,混迹于这个论坛当中的人创造什么新鲜实践和理论的可能性是微乎其微.创造新事物的学识,训练,积累,氛围,天赋,都不是我们这样的人所能具备的.当然有可能你在这些方面都比我们这里大多数人都强,这当然是一个好事.这个世界上什么都不缺,缺的就是天才,图灵冯诺依曼一百多年才一个.不过话说回来,事实如果真是如此,那我觉得你放弃理论物理的道路转行做软件开发也实在是太可惜了.即便是大多数计算机理论学科相对于理论物理来说也是too simple,sometimes naive.当然了至于你到底有多少功底,我也不太好评说.记得某伟人说过,智商200的人在智商80人面前,智商80的人会认为对方是个傻子。

不过就我个人来说,我是不太希望有多大的新鲜的创见.正如林毅夫说的,"我们这辈子的人拿诺贝尔奖的希望是几乎没有的,如果我的学生的学生能够拿到一个奖,那么我作为启蒙者的工作就算是做得很成功了".所以在我看来,学习计算机理论也好,学习数学也好,学习一门程序语言也好,如果能够用自己的理解说服自己能够用学到的知识去看懂ACM上的paper满足一下自己的求知欲,然后再能浅显易懂地传授给别人满足一下自己小小为人师表的虚荣心,已经是人生一大幸事了.毕竟学术上有深湛的创见,是困难的,罕见的,宝贵的,可遇不可求的.物理学上没有创见?不要紧,塌塌实实做个电工好了,不要去试图推翻相对论;数学上没有创建不要紧,踏踏实实的教平面几何好了,不要去试图用苹果证明庞加莱猜想.计算机科学上没有创见?不要紧,一年一年传授别人数据结构和算法就好了,不要去创造什么"新的软件设计理论",那些都是皇帝的新衣.

引用
to T1: 你不要总是把问题归结到一个人身判断上,这很无聊。

事实上,我并不是一定要做什么人身判断,面对Ajoo,他超强的动手技巧我自叹不如,它发布什么库我从来都是认认真真地研究他的代码,互相交流心得.面对Elminster,他学计算复杂性出身,我对算法很不精通,所以只要他出的任何算法题我都是认认真真学习请教.他们传授的这些东西虽然算不上是创新的见解,甚至算不上前沿,但是相对于他们的人身判断来说,更吸引我对他们的的知识作出判断。然而要我面对你的话,恐怕你除了人身判断之外目前为止还没有什么东西可以值得我做一些判断.
0 请登录后投票
   发表时间:2007-12-18  
如果你热衷于很无聊的人身问题,我也不想和你争论什么。你根本不认识我,也不了解我们所作的任何事情,判断些什么呢?

我不是要发明什么新的理论。只是从一个领域的观点看另一个领域,我们会得到一些新的应用的想法。只是学习并不是目的,我们总是想在某个地方得到实际的使用,而这种使用的方式并不总是平庸的。

一个人的论调如果总是前人n年前都把问题搞定了,那么我们现在还在做什么呢。 对于我而言,走入软件领域确实是一个偶然。我的思考总的来说还是做研究时的态度。做研究不是非要创造什么新的东西,或者否定什么已有的东西,多半我们只是基于基本原理做出一些不同的应用. 这些工作并不是只有天才才能从事,否则天下这么多研究者和实践者都只是在做着无聊的事情.当然,我们的技术目标不是虚幻的,而是非常切实的,那就是比所有竞争对手都更快更好的完成工作。这不是按照他人同样的做事方法能够做到的,总是需要想办法制造些不同出来。

我无意进行无聊的口舌之争,这个帖子我也不再回复.
3 请登录后投票
   发表时间:2008-04-27  
T1的意思是Monad是由类型系统引入的吗?

关于Monad我看到几种说法
Monad是类型化的continuation
Monad是组织算子的通用模式
Monad是计算过程的设计模式

这些说法好象和它带来的灵活性,弹性没什么牵扯

T1说continuation实际是lambad,而我一直认为延续是闭包带来的:)
0 请登录后投票
   发表时间:2008-04-27  
ychael 写道
T1的意思是Monad是由类型系统引入的吗?

关于Monad我看到几种说法
Monad是类型化的continuation
Monad是组织算子的通用模式
Monad是计算过程的设计模式

这些说法好象和它带来的灵活性,弹性没什么牵扯

T1说continuation实际是lambad,而我一直认为延续是闭包带来的:)

Closure难道不就是Lambad么?
continuation和Monad最大的不同在于,前者操纵Value,后者操纵Type.
在我的观点来看Monad应该是一个非常底层的技术,其地位类似于C++的Vtable.




0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics