2020-07-13 12:54
为何 func 不用中文?关键字也都得是中文才有意义啊,不然大部分其它语言都可以,什么变量,函数名。
2020-07-13 15:25
因为这是木兰的原始设计。本项目目标是重现木兰。
2020-07-14 00:20
我不知道你在说什么。。。抱歉。。。
2020-07-11 09:47
为啥把时间花在这个上?
2020-07-11 16:21
因为觉得值。
2020-07-10 19:21
这个所谓木兰语言的代码风格,看起来比易语言还要丑10倍。

纯中文或者纯英文的其实我都还可以接受,甚至用中文当变量名在变量名是特别少见的专有名词的时候也可以接受。

但是用英文关键字加上中文变量名这种为了中文而中文的方式简直如同鼻子吃面条一样滑稽。

最后就是作者的观点也完全是错的,木兰语言的空字典不能直接写成{}我看原因就是开发者水平不足而已……恕我愚钝,没看出来字典的{}和函数体的{}在语法分析上有何难度。

那句编程语言和自然语言的联想更是不明所以,编程语言的语法需要在数学上证明可行即可,和自然语言这种不严谨不标准的约定俗成的语言完全不是一个概念……

最后还是要赞赏一下作者的探究精神,毕竟愿意花时间在这种玩意上的人现在真的不多了。但是作者不妨在看看文言编程语言,完成度更高,语法高亮/IDE插件/包管理器/官网文档等等全都有了。社区参与人数也不是一个量级,我相信文言编程语言的社区也欢迎作者这样的人来研究。
2020-07-10 23:57
你愚钝与否我不知道,但来试试把木兰字典初始化改成{},应该能多点理解。
我眼拙,看不懂文言文。
不过,文言编程不也是参考了中文自然语言语法吗?
2020-07-12 01:47
参考归参考,但是编译器可接受的上下文无关文法和自然语言的文法还是不一样。所以从自然语言中寻找灵感没有什么意义。
2020-07-12 02:51
呵呵照你这么说,文言编程除了噱头还剩下什么?推广文言文在日常中的应用吗?
2020-07-12 03:56
你说的没错,文言编程就是一个玩具,但是你这个木兰我看和玩具也没啥区别,完成度还没人家高呢
2020-07-12 04:02
哦。那你继续看吧。
2020-07-10 17:42
建议熟读AST ,不要为了中文而中文,不然你的热情坚持不了半年。当年也是这种气势的坟头草都几丈高了,给你哥传送门感受一下

https://my.oschina.net/u/3754126/blog/2206653?p=2
2020-07-10 23:58
呵呵,链接给错了吧。
头像名字好眼熟好像哪儿见过你呢。。
咋熟读 AST?给个教程参考呗。
2020-07-10 15:23
方向就错了,还是沿用了英文编程的那套思维,只是做了一下语法词汇翻译,没什么意义
2020-07-10 16:54
呵呵,木兰本来就不是中文编程语言。
2020-07-10 15:14
py换皮
2020-07-10 14:24
其实,加个中文定义的方法更好--是字句,省了声明初始化。
2020-07-10 16:54
嗯,还没打算对木兰原本语法作任何修改,至少先把它的功能重现了再说。
2020-07-10 14:07
个人觉得nim的字典类型初始化合适些:@[]。
2020-07-10 13:57
编程语言关键在于生态,生态强了,就算是objective-c这么难看的语言也能起飞,你建得起生态去支持这门语言吗?
2020-07-10 16:52
不知道。走着看。
2020-07-10 13:05
注定是小众,也就1个人在研究的语言。
2020-07-11 00:00
看你就是圈外人。。一个人研究的编程语言多的去了
2020-07-11 11:26
哈哈,那就注定一个人用。
2020-07-10 12:49
。。。。。
rz
2020-07-10 12:30
摆脱了学习py还需要游标卡尺的传统
2020-07-10 12:24
省两个括号与它带来的缺点相比,真的不值当。
2020-07-10 15:20
DSL不香吗
2020-07-10 16:52
啥缺点说来听听?
2020-07-11 01:20
定义时省略的两个括号问题不大。调用时省略的括号,会让阅读代码时脑袋多一点疑惑:这玩意是变量还是啥?就像if和else语句只有一行代码时省略括号,排版整齐时省那两个括号还能勉强接受,排版没对齐时甚至if与后面语句写成一行时,真的对代码阅读是个很大的困扰,也有利于制造bug。也像c++里的auto和c#里的var,方便了书写代码,但另一方面也对直观看懂代码的语义表达制造了障碍,一般不是太长的类型我都会写明类型,尽量少用自动推导,毕竟阅读代码最多的人是自己,写代码已经很累了,没必要为了省那点字符,给自己之后反复的阅读工作造成困扰。我写这么多是因为我认为它们属于同类的问题:语法上没问题,但不利于代码意图的一目了然,尤其是阅读代码时,应该把与代码逻辑无关的语法模糊降到最低,用最简单直接平凡的代码表达意图。个人愚见,您或不认同,纯属个人口味。
2020-07-11 01:36
定义时,func 关键字应该足够清晰看出是函数。
调用时,因为木兰不允许一个单独变量为声明语句,习惯了应该也没问题。
个人不觉得有什么大问题(最多从其他语言转过来时稍微有点别扭)。
当然,文中也说了,这种无参数函数到底会出现多少,是个问题。个人感觉不会太多。
2020-07-11 01:41
无参函数不要太多……
2020-07-11 04:07
补充一下,只有在单独调用时可省略。如果是个赋值比如:
func a {
return 1
}
b = a()
如果省略了括号,b 就会被赋值为 a 这个函数。

BTW,这是重现木兰原本的语法设计。请随意评说,我的感触也不代表设计者当时的原意。
回复 @
{{emojiItem.symbol}}
返回顶部
顶部