巨坑地址:http://github.com/infinte/eisa 把「两个」代码生成器合并了不少,主要是表达式的部分。原来 LFC 里,非阻塞的函数和连续体的代码生成器是分开的,然而很多段代码都大同小异(就是 transform 和 expPart 的区别,这两个函数都是进行递归变换的函数,不过行为不同),现在合并了。 现在的 LFC 里,全局变量必须手工指定,以后会简化设置它的方法,比如允许 JavaScript 全局变量直接绑定到 lofn 的顶层函数里 文档这个巨坑慢慢填罢 顺便贴个东西:用源码的面积计算 pi 复刻版: var c = 0; var l = 0 def x(n) = (c += (2 if (n == x), 1)) then (l = n if(l < n), l) then (n + 1) def x.valueOf = {1} x [...]
Category Archives: Original
你喜欢这样定义类吗?这就是 eisa 的 def
// Also: Man = type(function(name)…) def type Man(name = “Unnamed”): @name = name end def Man.prototype.say(something): tracel @name + ‘: ‘ + something end var tom = Man.new ‘Tom’; tom.say ‘Hello’ // Also: Priate = outof(Man)(function(name, spname)…) def outof(Man) Priate(name = “Unnamed”, spname = “Unknown”): Man.call this, name @spname = spname end var beard = [...]
jscex 原理探析
这是我第一次给别人的类库写文章,说实话,用 Lofn 中的阻塞原语生成的代码可不是很容易看懂(虽然代码很好写……),相比之下,老赵 的 jscex 要好用得多。虽然 jscex 还没有完成(很多语法都处理不了),不过呢,第一,他已经大致能投入使用;第二,说说总比没有好,而且这个很有潜力的东西还是需要来推荐的。 相信无数的 JSER 都有过这样的经历,动画,然后用 while 循环来做,结果在浏览器卡了一小会有,要运动的元素直接蹦到目标位置上去了。于是,不解,论坛提问,然后查 setTimeout 和 setInterval 的案例,无数挫折后终于成功。jscex 给他们带来了曙光:只需要写个循环,循环里放个定时器回调,接下来一切事情由 jscex 解决。然后——哇,动起来了耶!
乱谈,和我做 lofn 时候的一点想法,以及 lofn 的异步库
一直想写这文章有段时间了,自己了解不少语言(自然的 & 程序的),也做过编译器,随便说说,应该还是可以的罢。如果说的不对请回复指正,谢谢。 很多人都在说语言的好坏,比如 Perl 和 Python 社区间持续的争论、Linus 炮轰 C++、老赵力挺 C# 等等。除开骂人时的快感,这些嘴仗没有什么意义:即是 Linus Towards 也无法说服 MS 扔掉 C++ 改用纯 C,也不能让一个有了 N 年 Java 经验的人改用 C#(倒是可能改用 Scala)。在这,我也不想让任何人改用其他语言(那会杀了他们),只是想让你们能多有些了解,此外,如果以后有再次选择的机会,能选择一个称手的语言。 在说程序语言之前,先来乱扯下自然语言。我不研究语言学(我有个同学是),我的很多理解都是基于数理逻辑,而非语言学。自然语言的语系众多,有些语言“好学”、有些“难学”。比如说,拉丁语和古希腊语的语序是一种修辞——句子部分间的关系完全由屈折变化决定。因此,他们都是很美、很有表现力的语言(因为可以用很短的句子表示复杂而精确的语义),也是很难学的语言。古汉语也是如此:当我们阅读文言文的时候,都会感叹怎么那么一点点字就有那么多意思! 与此相反,现代英语和现代汉语则更加“分析化”(Analytic),几乎所有能表现复杂语义的东西都用介词明示出来了。结果呢,原来很有韵味的话突然没了感觉,像是 “Cogito ergo sum” 变成 “I think, therefore I am”,没了韵味。现在的语言多了简易性,而少了美感和厚重感。
“Mein Lofn” series updates started.
So do you know what happened when I developing Lofn? And what’s my opinion on the compiler done by me? Now you can read this series for detail: Mein lofn. Check the updates at the Git repo. Chapters Avaliable Chapt. 0 in 中文 Chapt. 1 in 中文 Chapt. 2 in 中文 Chapt. 3 in 中文 [...]
Lofn的变量系统
lofn 现在已经上线,rednaxelafx 还给我做采访讨论lofn。和 CoffeeScript 不同,lofn 并没有把 lofn 源码转换成“完全”等价的 JavaScript 源码——虽然 lofn 的对象系统就是 JavaScript 的,但 lofn 的变量系统不是。