`
canonical
  • 浏览: 360316 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于函数式语言的只言片语

阅读更多
1. 函数式语言可以合理的看作是泛函分析思想的一种体现,从历史发展的时间上看大概也是具有这种可能性的。在Backus的论文中对函数式语言的一种乐观的情绪甚至扩大到functional algebra can be used to tranform programs and to solve equations whose "unknowns" are programms in much the same way one transform equations in high school algebra。这种信心只能来源于泛函分析和方程论,来自于数学分析学的发展。将函数的函数作为分析对象就构成泛函分析。泛函分析的最核心的思想当然不等价于它所研究的那些无穷维空间,不等价于种种正交基的构造。它的思想核心在于函数的函数具有独立的分析价值,具有脱离数量空间的具体的结构。这也是函数式语言试图推销的一种理念。


2. 最近这些年来一种称为"范畴"(Category)的东西在计算机理论研究中频频出现。范畴论是从同调代数发展而来的一种较新的代数语言,但它显然也不是可以解决任何问题的灵丹妙药。多一种表达方式当然在某种程度上可以增进我们的理解。但是范畴本身只是研究一种基础结构,它本身并没有承载所有的物理事实,基于它不可能对所有的规律一网打尽。不是明白了范畴,就懂了程序。范畴论是一种基础性的语言,有些人致力于基于范畴论来构建数学的其他分支,取代集合论的地位。将计算的本质重新归结于范畴论是无意义的,它不过是对事实的另一种陈述方式。说“函数式语言是基于范畴”是无意义的,因为这和说“所有现代数学都基于集合论”一样。无法发现新的相互作用关系,所有的概念都只是同义反复。不是一拿起数学,就找到了组织。

3. 我对函数式语言并没有什么反对意见。它是非常重要也非常优美的一种技术思想。但是现在一些函数式语言的狂热支持者似乎对函数世界充满了乌托邦式的幻想,一种大一统的世界观让人迷醉,但是它却解决不了现实的问题。所以我说无法认同函数式编程的世界观。作为一种具体的技术工具,问题不在于函数式语言是否体现了计算的本质,而在于它是否向我们提供了称手的兵器。现在我要计算两个小球相互碰撞的问题,我可以操起广义相对论,量子力学啥的开始大干一场,也可以用个牛顿力学小试牛刀,甚至可以只用反射关系摆个等式。但是在绝大多数情况下我们都会说这里面的物理是弹性反射而不是相对论。在理论分析中我们经常使用平面波假设,但只要实际关心的对象不在波包的边缘,没有人会认为平面波不是真实的物理机制。理论物理不是理想物理。在具体的参数设定下,我们只会使用特定的物理学。

   对世界的认识并不是非此即彼的。并不是说函数式语言好它就永远都好,要把所有对立面都灭掉。也不是说函数式不好,命令式就必然的好,就必然的能够解决问题。函数式语言的世界观过分单纯而排他,这是我反对的,我同样无法认同面向对象的本体论论调。就像CISC和RISC架构之争一样,最终我们在现实的物理约束下,运行的最好的芯片是两者思想的结合。这是我们面对物理世界的基本态度。
  
4. 函数式语言中时间是个有趣的概念。命令式语言中因为赋值语句的存在,使得我们可以观测到状态的变化,因此必然要定义时间。而函数式语言是无状态的,可以是无时间概念(对Lazy Caculation的依赖是否体现了深层次上对时间概念的需求?)。有些人认为函数可以看作是相空间中的迁移函数,是与相对论协调的,因而反映了时间的本质等等。相对论主要是解决了物理规律的协变性的问题,在此过程中它使人们认识到了时空之间奇异的对称性。但是广义相对论的表述中时间也是可逆的。真正定义了时间之箭的是热力学第二定律。根据Landauer's principle: 擦除(erase)1比特信息,耗散到环境中的能量至少是k*T*ln2, 或者说熵增至少是k*ln2. 这意味着只要我们对眼前的黑板不停的写了擦,擦了写,就必然无法回到过去。物理世界是复杂的。

5. 如果将状态看作是可以附着在某个对象上的标记,显然状态的存在性便于我们识认概念的唯一性。对象还是那个对象,只是状态标记发生了变化。而如果系统中没有状态,则必然产生了一个新的概念。这在很多情况下是不必要的负担。状态的存在使得系统在局部结构上允许出现非常复杂的变化,函数式编程的拥趸们对此多有诟病。但是从另一个方面上说,状态使得我们可以基于局部信息处理很多问题而不需要把它扩大化为一个全局匹配问题。

6. 函数构成函数似乎是很完备统一的世界。 但是在物理世界中发生的一切却复杂的多。虽然世界可以还原为原子,但是原子构成分子,分子构成宏观物质时,系统的基本性状发生了本质性的变化,并不再是统一的形式。每一个层面上都会产生独立的结构规律。

7. 函数式语言和命令式语言的计算能力相同(可以相差一个任意长度的多项式时间),但是在具体的情形下它们的描述能力是不同的。我所关心的不是语言层面的问题,因为语言本身的能力并不足以解决现实开发中的所有问题。即现实开发中所需要处理的结构问题并不是在语言层面得到充分解决的,这是我们需要做工作的地方。

   关于现实中的结构问题,我无意去定义什么万能的描述能力。你可以用微分几何,积分几何,广义变分等等手段去证明圆盘是某种意义下的周长最短的东西,但是这一切对你发明轮子并无本质上的助益。不过可以说说现实中的结构。这里不是要证明某种语言中无法描述这些结构,而是说结构是客观存在的,它并不是要在基础语言层面得到充分解决的。实际上现在的通用语言也是无法有效承载Domain Specific Structure的。

A. ErLang大概是目前世界上应用最为深入的函数式语言了。它确实发挥了函数式语言无显式状态变量的优势。但是它对程序构建本质上的帮助更多的来源于无共享的超轻量级进程模型,相当于定制了一般操作系统所提供的基本服务。微软的一个实验性操作系统项目Singularity, 其中也定义了只通过消息传递发生数据关联的超轻量级进程模型,它使用C#的一个扩展语言,额外增加的功能是消息管道上定义的规格状态机,对消息交互的时空模式进行额外的规约。这里对我们真正有价值的是隔离的单元结构。

B. AOP是程序结构空间中的定位和组装技术。在Witrix中我们规范化了切点处的状态空间,并对AOP进行了偏置处理.这种结构调整大大提高了AOP的可用性,使得它成为Witrix中的核心技术手段之一。

C. 面向对象的继承关系从结构观点上看是两个一维集合之间的覆盖关系。在Witrix中扩展了extends所对应的结构操作,创造了新的结构融合手段。
分享到:
评论

相关推荐

    只言片语的启迪.doc

    只言片语的启迪.doc

    2022最新版HTML只言片语网站导航模板

    采用HTML+CSS+JQ开发的最简单的静态页面,搭配GitHub pages或者是coding pages食用效果最佳! JS放在keyword.js中,HTML+CSS太过... 我看起来非常不错,简洁大方,后期可以加入用户登录,用户管理,收藏等等功能。

    JSP相关语言设计与论文

    关于利用JSP相关开发语言进行的一个小型系统的设计,制作一个供小型社区、集体交流和互动的信息传播平台——属于我们的交流平台——只言片语网。

    zypy:“只言片语” 游戏的计分系统

    ZYPY 桌游 “只言片语” 的计分系统。

    读《雍正皇帝》有感只言片语之序篇600字.docx

    读《雍正皇帝》有感只言片语之序篇600字.docx

    国家公务员面试技巧:从“只言片语”到“侃侃而谈”.docx

    国家公务员面试技巧:从“只言片语”到“侃侃而谈”.docx

    mood:只言片语系统源代码,PHP + MySQL原生“心情”管理系统

    只言片语 本项目是我的个人心情管理系统-“只言片语”的源代码,地址: ://mo.yqc.im mood.sql 整个项目的数据库文件,提供了数据库结构,有一些测试数据 安装说明 修改conn.php为您的数据库用户名和密码。另存为...

    高仿微博社交系统.doc

    相对于强调版面布置的博客来说,微博的内容组成知识由简单的只言片语组成,从这个角度来说,对用户的技术要求门槛很低,而且在语言的编排组织上,没有博客那么高; 2.多平台 微博开通的多种API使得大量的用户可以...

    C语言难点及分析.pdf

    这篇文章主要是介绍一些在复习 C 语言的过程中笔者个人认为比较重点的地方,较好的掌握这 些重点会使对 C 的运用...在此就不多作解释了,仅希望能有只言片语给同是 C 语言初学者的学习和上机过程提供一点点 的帮助。

    keenotes-desktop:KeeNotes is a Privacy-Preferred Personal Knowledgebase Management Tool 自己的只言片语和念头也需要一个数字烂笔头儿

    自己的只言片语和念头也需要一个数字烂笔头儿 It's light, it's small and it's confined for you only. Since I have continuously polish this tool, I would like to share it with you. I hope you can give it ...

    C++入门基础知识

    变量的作用域和存储类别、函数、数组、字符串、指针、文件、链表等。一些最基本的概念在此就不多作解释了,仅希望能有只言片语给同是C++语言初学者的学习和上机过程提供一点点的帮助。

    asp的校友微博 微波

    相对于强调版面布置的传统型校友录来说,校友微博的内容组成只是由简单的只言片语组成,从这个角度来说,对用户的技术要求门槛很低,而且在语言的编排组织上,没有校友录那么高,只需要反映自己的心情和观点,不需要...

    C语言难点分析整理.rar_C语言_上机_链表 c语言

    涉及的主要内容包括:变量的作用域和存储类别、函数、数组、字符串、指针、文件、链表等。一些最基本的概念在此就不多作解释了,仅希望能有只言片语给同是C语言初学者的学习和上机过程提供一点点的帮助。

    C语言难点分析整理!

    涉及的主要内容包括:变量的作用域和存储类别、函数、数组、字符串、指针、文件、链表等。一些最基本的概念在此就不多作解释了,仅希望能有只言片语给同是C语言初学者的学习和上机过程提供一点点的帮助。

    c语言的难点分析整理归纳

    涉及的主要内容包括:变量的作用域和存储类别、函数、数组、字符串、指针、文件、链表等。一些最基本的概念在此就不多作解释了,仅希望能有只言片语给同是C语言初学者的学习和上机过程提供一点点的帮助。

    LINQ To SQL 语法及实例大全

    网上查找LinQ to SQL资料,总是只言片语的,为此,本人话费1天多的时间,编辑、整理了这篇文档,内容都来自网络,为的是给学习.net的同行一点小小的帮助。 学习.NET必备! 不全不要分。 网上查找LinQ to SQL资料,总是...

    CC校友微博TM v5.1.0.rar

    相对于强调版面布置的传统型校友录来说,校友微博的内容组成只是由简单的只言片语组成,从这个角度来说,对用户的技术要求门槛很低,而且在语言的编排组织上,没有校友录那么高,只需要反映自己的心情和观点,不需要...

    CC校友微博TM v5.1.0 ASP 免费版.rar

    相对于强调版面布置的传统型校友录来说,校友微博的内容组成只是由简单的只言片语组成,从这个角度来说,对用户的技术要求门槛很低,而且在语言的编排组织上,没有校友录那么高,只需要反映自己的心情和观点,不需要...

    人工智能研究领域及其社会影响.docx

    人们之间用语言互通信息是一件非常简单的事情,而建立一个能够生成和"理解"哪怕是只言片语的计算机系统却是非常困难的。因为传递某一点的"思维结构"需要庞大的与该思维结构相关的公共思维结构,犹如一个人一样,需要有...

    方正“文房”XEB格式电子书“越狱”教程

    前言:自从给孩子买了F630电纸书,他就不喜欢,因为自己复制过去的txt电子书不能朗读,不能添加书签。...不得已在一个夜深人静之晚,按照只言片语的线索尝试解决,终于成功。截图为凭,并整理好步骤,以为共享。

Global site tag (gtag.js) - Google Analytics