机器之心 道参与:思源、Jamin
如果东北话是编程语言中使用的主要语言,编程是否更招人稀罕?学习编程是否会更欢乐?
这玩意儿可是填补了世界方言编程地图上的一大片儿空地啊!这么说吧,谁要是看了 dongbei 程序能忍住了不笑,我敬他是纯爷们儿!
那它有啥特点咧?多了去了:简单啊!小学文化程度就行。您能看懂春晚不?能?那就没问题。
好读啊!看着看着包您不由自主地念出声儿来。
开心啊!呃,做人嘛,最重要的是要开心。
开源啊!不但不要钱,而且不要脸 — 随时随地欢迎东北话高手打脸指正。
dongbei 编程语言的开发采用了业界领先的 TDD(TreeNewBee-Driven Development)方式。具体地说,就是每个功能都是先把文案写好,八字没一撇牛皮就吹起来了,然后根据牛皮写测试案例,最后再实现功能让牛皮不被吹破。这样做有两大好处:第一每个功能都是有的放矢,不值得 tree new bee 的功能一概没有。第二确保了每个功能都有文案负责吹嘘,开发者的辛劳绝对不会被埋没。
不扯犊子了。翠花,上酸菜~~~
没事儿,跑两圈
项目是用来跑的,是骡子是马需要拉出来溜溜。用东北话写代码,看起来就比较有意思,因此我们也把这个项目拉到电脑上溜一溜。首先,只要你的系统有 Python 3,那就甭麻烦了,直接下载 GitHub 项目,跑 src/dongbei.py 就成。
如下短视频展示了下载及测试东北方言编程的简单过程,项目实测很好用:
我们用着非常顺滑,只需要保证开发环境有 Python 3 就行了。在上面的短视频中,我们测试了东北方言中的「Hello World」,即输出「唉呀,这嘎哒真他妈那啥!」。这里唯一需要注意的是东北方言代码文件需要确保字符编码方式为 UTF-8,即在代码文件最上一行加上「# -*- coding: utf-8 -*-」。
如果你觉得编译成功,完美地问候了世界,那我们写一小段循环语句:
# -*- coding: utf-8 -*-老王装仨。老王从1到10磨叽: 老王走两步。 唠唠:老王。磨叽完了!
直观理解起来就是:我们先给老王赋值为 3,然后循环十次,每次老王会加二。确实在运行中,我们也能得到期望的结果。不过值得注意的是,每次执行东北方言,它都会给出对应的 Python 代码,如下所示,「从 1 到 10 磨叽」展示的却是 range(1, 11),这也许是使 Python 更贴近方言语法。
创建个新对象 – > 娶个新媳妇?break – > 完犊子了exit() – > 整没了Exception – > 整岔劈了type() – > 你瞅啥
...“我是一个字符串”...
注释:注释依旧使用 #,在字符串常量外,从 # 开始后的都会成为注释而被忽略掉:
唠唠: # 我是一个注释。 “嘎哈#?”。 # 我还是一个注释。
唠唠:“嘎哈#?”。
唠 唠 : “嘎哈?” 。
唠唠:“嘎哈?”。
两者也是一样一样滴,没有任何区别。
名字:在 dongbei 的设定里,除了关键词、标点符 和常数,其余都是名字。「张三乘李四」会自动判定「乘」是关键词,「张三」「李四」是名字。如要避免这种情况,可以直接添加【】把一串字符标注为名字。
如【张三乘李四】则会完全被判定一个名字,而不是再将「乘」当作关键词。这一点在之前的文言编程中是做不到的,我们在写文言语句时经常要避开采用关键词做变量名。
常数:除了日常所用的阿拉伯数字所表示的十进制整数外,dongbei 同样可支持使用中文表达 0 – 10 的常数:
零一二三四五六七八九十
老张是活雷锋。 # 定义变量。初始值:啥也不是。老张装二。 # 老张 = 2削老张。 # 老张 = 啥也不是老王是活雷锋。老王装仨。 # 老王 = 3老张装老王。 # 引用变量。老张 = 3
2. 运算
老张走走。 # 老张 += 1老张走两步。 # 老张 += 2老张退退。 # 老张 -= 1老张推三步。 # 老张 -= 3老张装老王加二。 # 老张 = 老王 + 2老张装(老张减三)除以五乘老王。 # 老张 = (老张 - 3)/5*老王
3. 比较
老王比5大7加二比老刘小老张跟老王一样一样的老李跟250不是一样一样的老刘啥也不是
4. 打印
唠唠:“唉呀妈呀”。 # 打印字符串常量。唠唠:老王。 # 打印变量的值。唠唠:老王比老张大。 # 打印表达式的值。唠唠:“老王是”、老王。 # 打印两个表达式的并置。
5. 条件
寻思:老王比老张大?要行咧就唠唠:“老王!”。要不行咧就唠唠:“老张!”。
6. 循环
老王从1到10磨叽: 唠唠:老王。磨叽完了!
7. 组合
寻思:老王比老张大?要行咧就开整: 唠唠:“老王!”。 唠唠:“你好美!”。整完了。
8. 套路
【阶乘】(那啥)咋整: # 定义套路 阶乘,有一个参数 那啥。 寻思:那啥比一小? # 需要自推吗? 要行咧就 滚犊子吧 一。 # 返回值1。 要不行咧就 滚犊子吧 那啥乘整【阶乘】(那啥减一)。 # 需要。返回自推结果。整完了。 # 定义结束。唠唠:整【阶乘】(五)! # 使用套路
出不了门,不如在家读论文。机器之心新一期AAAI 2020线上分享邀请到了南京大学人工智能学院研究助理卞超,为我们介绍他们在论文《An Efficient Evolutionary Algorithm for Subset Selection with General Cost Constraints》中提出的演化算法。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!