Skip to content

明義第一

译自 https://github.com/wenyan-lang/book/blob/master/01%20%E6%98%8E%E7%BE%A9%E7%AC%AC%E4%B8%80.md

古时启蒙,无不从最简易处开始。昔有《三字经》为例,今日编程教学亦依此理。编程中最简易者,莫过于「问天地好在」。其代码如下所示:

吾有一數 曰三。名之曰「甲」。
為是「甲」遍。
    吾有一言 曰「「問天地好在。」」。書之。
云云。

运行此程序,可得:

问天地好在。
问天地好在。
问天地好在。

有人问:为什么是「「问天地好在」」?未编程时,混沌茫然,不知天地所在。一旦编程,骤然明朗,如拨云见日,所以问候天地安好。

又问:为什么问三遍?难道天地耳朵聋了?答:不是。演示「循环」用法。循环一件事重复多次,如车轮转动、日月交替。能否做五遍?千遍?当然可以。

為是五遍。
    吾有一言 曰「「問天地好在。」」。書之。
云云。
為是千遍。
    吾有一言 曰「「問天地好在。」」。書之。
云云。

再问:「甲」是什么意思?为何不用「乙」?「甲」是变量名。用来指代实际内容,也就是值。指代之值便有很多了,或三,或五。再看这两句:

吾有一數曰三。名之曰「甲」。
吾有一言曰「「問天地好在。」」。書之。

吾有一数 吾有一言声明变量类型。数可计算,言可传递信息。每种类型各有用途,就像马不同于鹿、人不同于鬼。所以预先声明,明确类别。

曰三 曰「「问天地好在。」」给变量赋值。以后若问「甲」是多少,就是三;字符串同理。

名之曰「甲」给变量命名,好比给人取名、给剑起名。凡提到「甲」,指这个变量。 但万物皆在变化之中,好比从前叫广陵的地方,如今叫芜城。若「甲」改成四,可以这样写:

昔之「甲」者 今四是矣。

书之则是因程序运行时,机器自己知道值,但人看不见。所以用这个命令把结果显示出来。

问:甲字上下有「」,是什么意思,能省略吗?不能。单引号区分变量名,双引号区分字符串。没有它们,分不清含义。 又问:句号和空格可以省略吗?这仅用于帮助阅读,对程序意思没有影响。所以前面例子也可以写成:

吾有一數曰三名之曰「甲」為是「甲」遍吾有一言曰「「問天地好在」」書之云云

这样「问天地好在」例子,大致就说清楚了。