免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 55676 | 回复: 234
打印 上一主题 下一主题

[C] 站在月亮看地球——牛逼的新语言 MoonScript [复制链接]

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-16 15:26 |只看该作者 |倒序浏览
本帖最后由 starwing83 于 2011-08-16 15:52 编辑

最近 Lua 社区挺热闹的,因为 Lua 这种苦逼语言,实在是没法翻出啥新东西来了。
但是,往往就有人弄出了点新东西,上个星期,一个叫Leafo的人(头像看上去很像欧巴
桑,但是别误会,人家只是长得丑点= =)发布了一个让 Python、Perl 和 Ruby 都无语
凝噎的语言:MoonScript。

    MoonScript 基于 Lua 的牛逼的 lpeg 库,将自身一对一地翻译成 Lua 代码,其语
法借鉴了 Python、Ruby 和 Perl,我这里做了个发布版,除了 MoonScript 啥都不带XD

    下面来看看 MoonScript 的语法,懒得听我啰嗦的可以去官网 moonscript.org 看看


    MoonScript 和 Lua 是一对一的翻译关系,所以诸如类型系统哈什么的我就不提了,
这里提一些关键特性:

    - MoonScript 用 Python 式的缩进干活:

if a == 10
    print "good"
else
    print "bad"

    - MoonScript 支持 Ruby 式的无括号调用:

print "hello", "world"

    - MoonScript 没有 函数声明语句(大胆吧XD),它只支持匿名函数:

((a, b)->print a, b, a+b)(1,2) -->打印 1 2 3

    - MoonScript 的一切都是表达式(或者尽力让一切都是表达式:

a = if 1 == 2 then 1 else 2 --> a = 2
b = for x = 1, 10 do if x % 2 == 0 then x --> b = {2,4,6,8,10}

    - MoonScript 支持完整的面向对象编程,类、继承,应有尽有:

class A
    new: (a, b) =>
        @a, @b = a, b
    print: =>
        print("A", @a, @b)

a = A 10, 20
a.print() --> 打印 A 10 20

    怎么样?牛逼吧!让 Python Ruby 之流颤抖吧!!

    附件是个能在 Windows 上面跑的 MoonScript,非 Windows 平台自己去官网看


moonscript.zip (159.89 KB, 下载次数: 185)

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
2 [报告]
发表于 2011-08-16 15:35 |只看该作者
本帖最后由 OwnWaterloo 于 2011-08-16 15:39 编辑

1. ((a, b)->print a, b, a+b)(1,2) -->打印 1 2 3
2. MoonScript 的一切都是表达式(或者尽力让一切都是表达式
又是lisp玩剩下的。

3. MoonScript 支持完整的面向对象编程,类、继承,应有尽有
人家lisp都不屑玩的。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
3 [报告]
发表于 2011-08-16 15:41 |只看该作者
lisp那个丑陋的东西就不要提了哈,咱们讨论的是正常地编程语言,不是把人搞成编译器的头脑老虎凳~~

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
4 [报告]
发表于 2011-08-16 15:47 |只看该作者
lisp那个丑陋的东西就不要提了哈,咱们讨论的是正常地编程语言,不是把人搞成编译器的头脑老虎凳~~
starwing83 发表于 2011-08-16 15:41


丑陋? 不正常?
你这是在对全世界使用sgml(html/xml)的程序员施加群体嘲讽, 对吧?
那简直是一定的……

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
5 [报告]
发表于 2011-08-16 15:48 |只看该作者
回复 4# OwnWaterloo


    没人用html去算1+1等于几吧

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
6 [报告]
发表于 2011-08-16 15:53 |只看该作者
回复 5# starwing83

有用xml的, 还大把大把的……

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
7 [报告]
发表于 2011-08-16 15:59 |只看该作者
回复 6# OwnWaterloo


    嘿嘿~~如果是这样,那么人家会说XML是一种lisp的方言的。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
8 [报告]
发表于 2011-08-16 16:08 |只看该作者
回复 7# starwing83

lisp方言?
将先解析树隐藏, 再设计一套所谓的DOM去访问, 这不脱了裤子放屁么?
重新且糟糕的发明一件事物就是如此地有吸引力???

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
9 [报告]
发表于 2011-08-16 16:11 |只看该作者
回复 8# OwnWaterloo


    你说对了,做出糟糕的决定但不用为此负责是世界上最吸引人的事情

论坛徽章:
0
10 [报告]
发表于 2011-08-16 16:15 |只看该作者
回复  starwing83

lisp方言?
将先解析树隐藏, 再设计一套所谓的DOM去访问, 这不脱了裤子放屁么?
...
OwnWaterloo 发表于 2011-08-16 16:08


DOM其实很伟大

DOM+CSS+javascript就是下一代界面技术
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP