动态函数式语言
文章平均质量分 73
aimingoo
这个作者很懒,什么都没留下…
展开
-
从表达式到变量:一行scheme代码之所见
下面这行代码在scheme中是可以执行的,其结果值为12:-----------((if #f + *) 3 4)-----------在scheme中,一对括号表明过程调用。括号中的第一个参数是过程名,其余的则是过程参数。那么,我们先看内层括号中的代码:-----------(if #f + *)-----------"if"是一个过程名,而不是语句。该过程相当于JavaScript原创 2007-02-12 09:56:00 · 6653 阅读 · 4 评论 -
继承与混合,略谈系统的构建方式
舍弃“继承”这种方式不谈,系统构建还有其它的什么方法吗?原创 2010-12-08 14:28:00 · 15334 阅读 · 7 评论 -
前端要给力之:原子,与原子联结的友类、友函数
JavaScript中的原子(Atom)是QoBean中提出的一个重要概念,借鉴自erlang,但具有与后者不同的含义。在QoBean里,Meta(元)与Atom(原子)是一对概念,前者表明执行系统中的最小单位,后者表明数据系统中的最小单位。QoBean约定这两个东西为一切元编程的初始,即最小化的执行系统与数据系统模型。有什么意义呢?没什么意义。这只具备理论上的完整性。为了描述这种完整性,Qo...原创 2010-12-25 05:37:00 · 14706 阅读 · 7 评论 -
再谈JavaScript的数据类型问题
有读者与朋友们的关心,总是好的。答疑释解,于人于已,皆成美事。原创 2011-07-26 15:41:29 · 25541 阅读 · 33 评论 -
三谈类型问题:ECMAScript为什么错了?
我在本文中所指它的“错误”,而令人误解的这一部分类型描述,而非严格的正确与错误的判决。原创 2011-07-27 13:32:59 · 11861 阅读 · 3 评论 -
JavaScript类型总览(图)
图来自于《JavaScript语言精髓与编程实践》第三章P184页。此为第二版修改后的版本。原创 2011-08-10 17:36:04 · 28007 阅读 · 43 评论 -
《JavaScript语言精髓与编程实践》第二版的主要修改
2008年3月,第一版 第一次印发版本。2012年3月,第二版: 在第一版基础上修订发布后所发现的七十余处勘误,其中五十余处主要是字词、排版类错误。 重新制版,避免了印刷中导致的破折号丢失的问题。 将目录细化到第四级标题,以完整地展示本书的内容与结构。 加入本附录,以维护本书的多个版次。 从第三部分“编程实践”中去除掉有关Qomo的大部分内容(这些内原创 2011-09-13 20:38:04 · 11184 阅读 · 33 评论 -
形式重要吗?
今天看到一篇关于20行代码的文章,说到JS圈子里有一项赛事,就是在20行代码中写出尽可能丰富的效果来。当然,类似的事情在种种语言中都有,不惟JS。于是一时兴起,打算把Qomo写出个20行的版本来。是啊,如果Qomo可以写成20行,将是何等快意啊?于是就动手写了写。写之前,看了别个的一些20行,大意是声明语句可记为一行,连续表达式可以记为一行,又则,函数声明按内部的行数来记行原创 2009-01-09 16:16:00 · 4720 阅读 · 14 评论 -
在js中做数字字符串补0
通常遇到的一个问题是日期的“1976-02-03 HH:mm:ss”这种格式 ,我的比较简单的处理方法是这样:function formatDate(d) { var D=['00','01','02','03','04','05','06','07','08','09'] with (d || new Date) return [ [getFullYear(), D[ge原创 2009-08-28 11:28:00 · 78107 阅读 · 5 评论 -
世界需要一种什么样的语言?
这一篇是我的一本迷你电子版书《动态函数式语言精髓》的序。这本书节选并增改自《Javascript语言精髓与编程实践》,后者看起来是一本主要讨论Javascript语言的书,但事实上有大量的内容是在讨论语言、多范型等等,而《动态函数式语言精髓》也正是该书的初衷。本电子书通过InfoQ独家发布,请如下地址下载:http://www.infoq.com/cn/minibooks/javasc原创 2009-03-12 14:06:00 · 5480 阅读 · 1 评论 -
表面的简洁
本文刊发在《程序员》杂志09年第二期上。是讨论函数式语言基本性质和发展方向的一篇文章。 表面的简洁一、把大象装进冰箱===== 在命令式语言(当然我们可以确指为C、Delphi、Java或C#等等)中,初学者的第一个疑难便是这样的代码(*注1): X=X+1 为什么?因为在数学概念中,上述等式是不能成立的。这种表达式是计算机的思维逻原创 2009-04-22 11:44:00 · 4531 阅读 · 4 评论 -
《JavaScript语言精髓与编程实践》(第二版)相关资源汇总
《JavaScript语言精髓与编程实践》已经陆续在网店开售,相关信息可以看这里:绿皮书再版!ECMAScript 5th有讲呵!http://blog.csdn.net/aimingoo/article/details/7362552主要的修改与更新的内容在这里:《JavaScript语言精髓与编程实践》第二版的主要修改http://blog.cs原创 2012-03-21 10:37:55 · 13615 阅读 · 3 评论 -
迟来的真相:关于JavaScript的历史
今天看到李松峰老师(@李松峰)发布了新版的《JavaScript高级程序设计》(第三版)的预售消息,于是跑去当当(在这里)仔细地读了一下新版有关“JavaScript起源”的段落。读罢,心中的种种不安一扫而空:在这本书的第三版,总算还原了JavaScript起源的真相。 话说有一本《JavaScript权威指南》,以及这本《JavaScript高级程序设计》,算这些年对前端界/JavaSc原创 2012-03-22 15:13:39 · 20757 阅读 · 13 评论 -
像大师们一样思考——从“UML何时死掉”谈起
题记: 在与Ivar的访谈之后,我一直想把这一段过程写出来。我尝试拟过许多个题目,最后都写不成文章。几乎在我要放弃的时候,BLOG读者在评论中,对我所解释的“函数式语言”的置疑提醒了我:很多时候不是问题的答案令人置疑,而是问题的思想方法令人置疑。如同我问Ivar的问题,他的答案“令人怀疑的正确”,其实是思想方法的问题。不站在Ivar的历史,以及Ivar的成就的角度上去思考,你会认为Ivar是原创 2008-10-09 02:11:00 · 10013 阅读 · 9 评论 -
“主要的编程范型”及其语言特性关系(多图)
“主要的编程范型”(The principal programming paradigms)这幅图,其实出现得不算早,作者在2007年完成了该图的1.0版,到2008年更新至v1.08版本。本次提供的是翻译成中文的版本(老实说,笔者翻译水平相当有限,若有不当之处,请各位尽量指出,必尽快补正)。 这幅图的原作者Peter Van Roy,是《Concepts, Techniques, and原创 2009-10-10 04:31:00 · 12877 阅读 · 5 评论 -
《JavaScript语言精髓与编程实践(第二版)》勘误【2012.12】
相关信息可以看这里:http://blog.csdn.net/aimingoo/article/details/7362552本文只发勘误。============================================在第二印次中,已经处理的勘误:12处(该版有两个印次,第二印次已经修订了这些勘误)===========================原创 2012-12-12 21:31:58 · 11337 阅读 · 6 评论 -
前端要给力之:分解对象构造过程new()
本文讨论JavaScript中的对象创建运算new。需要说明的是,本文所讨论的“将new()过程分解为多个步骤”,并非一般js开发中的所须技巧,而是在js来构建OOP系统的必要技术。 一、JavaScript构造器与构造过程的特点JavaScript中通过以下方式声明和使用构造器:function MyObject() { this.xxx = 1;}MyObject.prototype.原创 2010-12-29 14:57:00 · 17110 阅读 · 12 评论 -
前端要给力之:代码可以有多烂?
本文从第2小节,至第6小节,仅供对架构、框架、库等方面有兴趣的同学学习研究,有志于在语言设计、架构抽象等,或基础项目中使用相关技术的,欢迎探讨,切勿滥用于一般应用项目。原创 2010-11-26 09:53:00 · 29366 阅读 · 64 评论 -
关于JavaScript,答shendl
今天有闲,正好看到shendl同学在博客上的回复,是关于所谓“为脚本语言平反”的。我拟“为XX平反”这个标题,原本也只是吸引一下眼球来着,并不是真的想平反,或真有能力平了反。连JavaScript之父-Brendan Eich同学都背了这么多年黑锅,这个反,哪是说平就平了的。但shendl回贴了,言辞凿凿。细细读呢,却又满纸荒唐。遂回复一贴,但被CSDN Blog的、伟大而又莫名其妙的回贴排版原创 2009-09-27 09:33:00 · 5485 阅读 · 17 评论 -
一些JavaScript 1.6~1.8上的高级技巧~
在jslibs的项目wiki上看到这些技巧,都是一些在mozilla spidermonkey javascript上的高级戏法。在JScript上不能用的哈~。这里转过来,很多技巧挺有趣的。原文引用在:http://code.google.com/p/jslibs/wiki/JavascriptTips------------------------------------------1原创 2007-09-04 12:45:00 · 8937 阅读 · 9 评论 -
从表达式到函数:表面的简洁
scheme/lisp中,(基于运算元、运算符的)表达式运算是一个语法基础,但它们被称为函数式语言而非表达式语言。那么,它们是如何解释函数式语言的呢?一个lisp的函数在语法上应当书写为如下格式:----------------((lambda (p1...pn) e) a1...an) ----------------这是什么意思呢?其实,这其中的p1..pn为形式参数,而a1..an为实际原创 2007-10-08 15:35:00 · 3478 阅读 · 1 评论 -
我的程序语言实践
动静之间,不变的本质 ——我的程序语言实践===========引子====源于SD2.0大会的召开,以及拙作《JavaScript语言精髓与编程实践》一书的出版在即,CSDN、博文视点以及《程序员》的编辑都希望我写一点关于语言的东西。我已经为这个问题苦恼了很久,因为我不知道可以说什么,既可以与先行者有别,又可以使后来者为鉴。这下便借用《程序设计语言实践》一书的书名,原创 2007-11-01 14:12:00 · 5998 阅读 · 11 评论 -
《JavaScript引擎技术》-SD2大会中的PPT
先把PPT发出来~~其它的随后再说啦~~~下载地址:http://groups.google.com/group/qomo/files文件名:sd2c_aimingoo.zip原创 2007-12-05 22:15:00 · 5890 阅读 · 10 评论 -
《JAVASCRIPT语言精髓与编程实践》预读样章公开~
书稿已经出送印,按出版社的说法,大概两三周就可以在书店见到了。 所以现在china-pub已经有了预订:http://www.china-pub.com/38730根据出版社的许可,下面是作为公开预读的章节,欢迎评论指正。哈哈。预读内容:------------代 序: 学两种语言前 言目 录第一章:十年JavaScript第四章:JavaScript的函数式语言特性(前五节)第七章:原创 2008-03-05 10:15:00 · 3452 阅读 · 5 评论 -
还原JavaScript的真实历史~
问题============JavaScript真的继承自Cmm吗?JavaScript与Java有多少关系?JavaScirpt最初的设计是怎样的?在许多资料,JavaScript的语源被追溯到一种名为Cmm的语言。同样是在这一溯源的过程中,人们发现“其实”JavaScript不是第一种网页中的脚本语言。现在一些所谓“公认”的情况是这样的:----------------大概在1992年,一家称原创 2007-12-13 04:14:00 · 24867 阅读 · 23 评论 -
朋友们,我的D2之行
D2开始了,然后又结束了。很快,但留给我深刻的印象。这一届D2,我遇到了一些旧的朋友,看到了一个新的开端。一些故事发生了,很快在消失。然而D2,很快的又会到下一届了,我想……一、故事的开始==========来到北京之后第一次上网,就从我的MSN空间里看到一条消息,是克军发来的。克军,我并不认得,但他在消息中提到一件事:约我做第二届D2的讲师;提到一个人:Hedger Wang。至于克军是原创 2008-04-30 14:41:00 · 2562 阅读 · 1 评论 -
JavaScript语言精髓与编程实践 - 勘误
1. 字词上的错误(24处)==============代序,页1,倒数第五行---------然而一如我现在所见到, 改为然而一如我现在所见到的, P22,表1-2,(含表头)第三行、第二列---------也被称为Cliet-Side JavaScript 改为也被称为Client-Side JavaScript P30,表2-2,(含表头)第三原创 2008-04-23 13:36:00 · 4104 阅读 · 28 评论 -
对JavaScript的eval()中使用函数的进一步讨论~
《JavaScript语言精髓与编程实践》的读者I22141提出了一问题:为什么下面这段代码在JScript和SpiderMonkey中表现不一样:--------var func = eval("(function(){})");alert(typeof func);--------更进一步的问题是,书中对匿名和具名函数在JScript与SpiderMonkey中的表现解释得不够清楚。好的,这篇原创 2008-07-22 20:29:00 · 8279 阅读 · 16 评论 -
元语言基础技术之:在JS中如何自由地创建函数
在前面讲元语言http://blog.csdn.net/aimingoo/archive/2008/07/25/2707504.aspxhttp://blog.csdn.net/aimingoo/archive/2008/07/25/2709638.aspx的过程中,有些技术细节就忽略了。其中之一,就是这个创建函数的方法。这里开个小主题来讲讲。 在JS里面,我们可以用任意方法来原创 2008-07-26 23:48:00 · 3208 阅读 · 0 评论 -
JavaScript全局优化带来的负面效果……
读者在China-pub中指出《JavaScript语言精髓与编程实践》的一个示例在FF上不正常。具体来说,就是第“4.6.6 语句或语句块中的闭包问题”中的第二、三、四三个示例。这个问题我反复测试过,只出现FireFox(SpiderMonkey JavaScript)中。我当时意识到是SpiderMonkey特殊的全局变量引用机制导致的,但因为没有切实地、在源代码级别观察过,因此我没有立即回原创 2008-07-23 22:38:00 · 7922 阅读 · 17 评论 -
无废话JavaScript(上)
无废话JavaScript(上)《程序员》2008.09期有一篇名为《无废话ErLang》的文章,这让我想到了许多的诸如“无废话C”、“无废话书评”这类的文章,也想到了JavaScript可没有一篇“无废话”,所以决定开个篇来写这个。与这个决定相关的,还因为另一个缘故:许多读者认为我那本《JavaScript语言精髓与编程实践》读来辛苦,所以我一直想写个简单的读本。索性,这次就写个最简单的吧。声明原创 2008-10-06 15:25:00 · 12055 阅读 · 18 评论 -
主要程序设计语言范型综论与概要
主要程序设计语言范型综论与概要 ——《JavaScript语言精髓与编程实践》摘引 本文档已重新发布为迷你电子书: http://blog.csdn.net/aimingoo/archive/2009/03/12/3983975.aspx原创 2008-10-07 20:37:00 · 4589 阅读 · 6 评论 -
无废话JavaScript(下)
无废话JavaScript(下)上一篇在这里,在这里,在这里…… 五、函数式这个可不是JavaScript的发明,它的发明人已经死了,而他的这个发明还在困扰着我们……如同爱迪生的灯泡还在照耀着我们。其实函数式语言很简单,它就是一种与命令式语言同样“完备”的语言实现方案。由于它的基础思想与命令式——如果你不想用这个难于理解的名词,那就把它换成C,或者Delphi好了——语言完全不同,所以大多数情况下原创 2008-10-06 15:35:00 · 7903 阅读 · 19 评论 -
为脚本语言平反-JavaScript篇(1)
导言============在支付宝有一个奇怪的组织叫pCLUB,是一群programmer讨论问题的公共博客(没有对外开放哈)。最近呢,孔宣同学发起一个话题,提出要为种种脚本语言“平反”。他提到说:========我发现,现在脚本语言也深受第一印象所苦。一谈到脚本语言,人们作何反应?「运行速度很慢」「只能写一些玩具小程序」「没什么好用的IDE」「调试很困难」=原创 2009-09-08 16:33:00 · 9926 阅读 · 12 评论 -
为脚本语言平反-JavaScript篇(3)
http://blog.csdn.net/aimingoo/archive/2009/09/08/4532496.aspx(书接上回,继续!) 五、这个DSL框架有什么问题?=============有什么问题吗?有一点,并不严重。比如说,我们在Env中声明了一些属性和方法。对于Env这个对象Env = { max: 100, min: -3, calc原创 2009-09-08 17:09:00 · 3835 阅读 · 1 评论 -
前端要给力之:语句在JavaScript中的值
语句在JavaScript中的值 这两天在写语言精髓那本书的第三版,讨论到ES6跟ES5中间对“语句的值”的不同处理。正好Weibo上也有同学对这个问题有兴趣,所以专门整理了这篇。 写博客可以啰嗦点,写书就不行了。所以这篇文章跟书上能看到的还是会不一样的。问题是:语句有值吗?很不幸,我们面临的的确是一门连语句都有值的语言。在JavaScript中,代码是按语句行(Statement原创 2016-04-12 19:48:08 · 7572 阅读 · 0 评论