阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

  • 时间:
  • 浏览:5
  • 来源:puffin浏览器_pil船公司_oocl船公司官网|impk战网论坛|hub系统
阅读模式 文言文编程是什么情况

用文言文编程是什么样一种体验?是不是既能学习文言文,又能搞定编程逻辑?介绍不如演示,我们先看看编程世界里的第一段代码,广大程序员学习的第一句「HelloWord」是什么样的。如果读者们文言文比较溜,或者了解一点程序思维,那么可以了解,下面一段文言文代码就是输出三遍问天地好在,也就是HelloWord的文言文版。

具体而言,先定义一个数3,并命名为甲,现在循环甲次,每次在屏幕上打印出問天地好在。作者会将其翻译成对应的 Javascript 代码,从而帮助我们理解。

当然,按照我们的习惯,改写成 Python 代码也是没问题的:

为了更贴近文言文的表达习惯,Lingdong Huang 在项目表示各种标点和换行都是可以去掉的,上面的文言文代码可以等价写为:

突然感觉,好像没了符号的文言文代码更容易懂了?

这样看起来似乎很简单?那你就小瞧了文言文编程的魅力。比如说程序员入门必修课斐波那契数列,每一项都是前两项的和,第一项是 0、第二项是 0+1、第三项是 1+1 等等。

如果用文言文来写斐波那契数列,我们需要建立一个函数,函数的输入是斐波那契项数,输出是该项具体的值。如果用文言文来写,画风是这样的:

最后一句「施「斐氏列」於七。書之。」是调用函数,并输出第 7 个结果。虽然看上去比较麻烦,但我们还是可以细细阅读,例如「吾有一術。名之曰「斐氏列」。」很明显定义了一个函数,函数名是「斐氏列」;「若「因」等於零者。昔之「果」者。今「因」是矣云云。」表示如果「因」这个变量等于 0,那么就将「因」这个变量的值赋值到「果」变量。

如果阅读上还有困难,那么也可以看看项目作者提供的对应 Javascript 代码。不过我们可以尝试把它翻译成 Python 语言,翻译结果如下所示:

当然,Python 作为一种极其精简的语言,真正用它来写斐波那契数列肯定代码量要少很多。不过,借助这段翻译,理解文言文编程还是要简单很多的。如果读者想要试一试,可以复制这个 GitHub 项目,并在本地编译,也可以直接使用在线 IDE 编译你的代码。

下面,作为一种新语言,我们当然要了解它的神奇语法,不论是定义变量、函数,还是生成数列,文言文都有对应的语法。

语法规则

考虑到文言文和其他编程语言的转换有一定的理解难度,作者提供了一些语法转换规则表,供参考。

变量命名

条件/循环

数学计算

数组(列表)

这里从1开始计数。

函数

让你的代码更有逼格

看厌了黑底的代码?项目还提供了一个炫酷的古文代码生成器,我们可以把自己的文言文代码转换成古书中从右到左,从上到下,没有标点的古文。是不是更有 B 格了?这个生成器还有 SVG 文件,可以将代码再提取出来,重新运行。

以下为项目作者尝试的图灵机代码:

*文章经作者授权发布,不代表PingWest品玩立场,如需转载请联系原作者。

猜你喜欢