Skip to content

Commit fa778d7

Browse files
authored
Merge pull request #587 from wenyan-lang/master
v0.3.2
2 parents 9387a1b + f6f3419 commit fa778d7

29 files changed

+648
-1989
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
### [wy-lang.org](https://wy-lang.org) | [Wiki](https://github.com/wenyan-lang/wenyan/wiki)
1010

11-
English | [简体中文](./README.zh-Hans.md) | [繁体中文](./README.zh-Hant.md)
11+
English | [简体中文](./README.zh-Hans.md) | [繁體中文](./README.zh-Hant.md)
1212

13-
文言文編程語言。A programming language for the ancient Chinese. [Try it online.](https://wy-lang.org/ide)
13+
文言文編程語言。A programming language for the ancient Chinese. [Try it online.](https://ide.wy-lang.org/)
1414

1515
![](screenshots/screenshot01.png)
1616

@@ -59,12 +59,12 @@ More sophisticated examples, such as the Sieve of Eratosthenes, Quicksort, Mande
5959
- [Natural Language Programming](https://en.wikipedia.org/wiki/Natural-language_programming) sharing the grammar of [Classical Chinese](https://en.wikipedia.org/wiki/Classical_Chinese)
6060
- Compiles to [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript), [Python](https://python.org), or [Ruby](http://ruby-lang.org)
6161
- [Turing complete](https://github.com/LingDong-/wenyan-lang/blob/master/examples/turing.wy)
62-
- An [Online IDE](https://wy-lang.org/ide)
62+
- An [Online IDE](https://ide.wy-lang.org/)
6363
- [Examples](https://github.com/LingDong-/wenyan-lang/tree/master/examples) to get started
6464

6565
## Try it out
6666

67-
### [The Online IDE](https://wy-lang.org/ide)
67+
### [The Online IDE](https://ide.wy-lang.org/)
6868

6969
![](screenshots/screenshot02.png)
7070

@@ -106,7 +106,7 @@ Check out our [Wiki pages](https://github.com/wenyan-lang/wenyan/wiki)
106106
- [Standard Library Cheatsheet](https://github.com/wenyan-lang/wenyan/wiki/Standard-Library-Cheatsheet)
107107
- [Library Packages](https://github.com/wenyan-lang/wenyan/wiki/Available-Packages)
108108
- [Contributing](https://github.com/wenyan-lang/wenyan/wiki/Contributing)
109-
- [API Specifcations](https://github.com/wenyan-lang/wenyan/wiki/Compiler-API)
109+
- [API Specifications](https://github.com/wenyan-lang/wenyan/wiki/Compiler-API)
110110
- [Browser Runtime](https://github.com/wenyan-lang/wenyan/wiki/Browser-Runtime)
111111
- [Feature Requests](https://github.com/wenyan-lang/wenyan/wiki/Feature-Requests)
112112
- [Known Issues](https://github.com/wenyan-lang/wenyan/wiki/Known-Issues)
@@ -139,4 +139,4 @@ Support this project with your organization. Your logo will show up here with a
139139
<a href="https://opencollective.com/wenyan-lang/organization/6/website"><img src="https://opencollective.com/wenyan-lang/organization/6/avatar.svg"></a>
140140
<a href="https://opencollective.com/wenyan-lang/organization/7/website"><img src="https://opencollective.com/wenyan-lang/organization/7/avatar.svg"></a>
141141
<a href="https://opencollective.com/wenyan-lang/organization/8/website"><img src="https://opencollective.com/wenyan-lang/organization/8/avatar.svg"></a>
142-
<a href="https://opencollective.com/wenyan-lang/organization/9/website"><img src="https://opencollective.com/wenyan-lang/organization/9/avatar.svg"></a>
142+
<a href="https://opencollective.com/wenyan-lang/organization/9/website"><img src="https://opencollective.com/wenyan-lang/organization/9/avatar.svg"></a>

README.zh-Hans.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### [wy-lang.org](https://wy-lang.org) | [Wiki](https://github.com/wenyan-lang/wenyan/wiki)
66

7-
[English](./README.md) | 简体中文 | [繁体中文](./README.zh-Hant.md)
7+
[English](./README.md) | 简体中文 | [繁體中文](./README.zh-Hant.md)
88

99
文言文編程語言。 [在线体验](http://wenyan-lang.lingdong.works/ide.html)
1010

README.zh-Hant.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### [wy-lang.org](https://wy-lang.org) | [Wiki](https://github.com/wenyan-lang/wenyan/wiki)
66

7-
[English](./README.md) | [简体中文](./README.zh-Hans.md) | 繁体中文
7+
[English](./README.md) | [简体中文](./README.zh-Hans.md) | 繁體中文
88

99
文言文編程語言。 [在線體驗](http://wenyan-lang.lingdong.works/ide.html)
1010

examples/README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
<!-- GENERATED FILE, DO NOT MODIFY-->
1+
<!-- GENERATED FILE, DO NOT MODIFY -->
2+
<!-- "npm run build:docs" to regenerate -->
3+
24
# Examples
35

46
| File | Remark |
@@ -7,19 +9,22 @@
79
| [clock.wy](clock.wy) | 畫鐘 |
810
| [collatz.wy](collatz.wy) | 考拉兹猜想 |
911
| [collatz2.wy](collatz2.wy) | 考拉兹猜想二 |
10-
| [crt.wy](crt.wy) | 大衍總數術(中國剩餘定理)|
12+
| [crt.wy](crt.wy) | 大衍總數 |
1113
| [divination.wy](divination.wy) | 春秋古筮法 |
1214
| [draw_heart.wy](draw_heart.wy) | 畫心 |
1315
| [eightqueens.wy](eightqueens.wy) | 八皇后問題 |
1416
| [euclidean.wy](euclidean.wy) | 歐幾里得法 |
1517
| [factorial.wy](factorial.wy) | 階乘 |
1618
| [fibonacci.wy](fibonacci.wy) | 斐氏列 |
19+
| [fibonacci_array.wy](fibonacci_array.wy) | 斐氏列三 |
1720
| [fibonacci2.wy](fibonacci2.wy) | 斐氏列二 |
1821
| [fizzbuzz.wy](fizzbuzz.wy) | [嘶嘶嗡嗡][1] |
1922
| [hanoi.wy](hanoi.wy) | 漢諾塔 |
23+
| [hanoi_stack.wy](hanoi_stack.wy) | 漢諾塔二 |
2024
| [helloworld.wy](helloworld.wy) | 問天地好在 |
2125
| [helloworld+.wy](helloworld+.wy) | 問天地好在+ |
2226
| [import.wy](import.wy) | 導入示例 |
27+
| [linglong_tower.wy](linglong_tower.wy) | 玲瓏塔 |
2328
| [macro.wy](macro.wy) | 宏示例 |
2429
| [mandelbrot.wy](mandelbrot.wy) | 曼德博集 |
2530
| [mergesort.wy](mergesort.wy) | 歸併排序 |
@@ -36,6 +41,7 @@
3641
| [quine.wy](quine.wy) | [自產生程式][2] |
3742
| [quine2.wy](quine2.wy) | 自產生程式二 |
3843
| [selectionsort.wy](selectionsort.wy) | 選擇排序 |
44+
| [serialization.wy](serialization.wy) | 渾沌經 |
3945
| [sieve.wy](sieve.wy) | 埃氏篩 |
4046
| [sqrt_newton.wy](sqrt_newton.wy) | 牛頓求根法 |
4147
| [tree.wy](tree.wy) | 畫樹 |

examples/fibonacci_array.wy

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
吾有一術。名之曰「斐氏列」。
2+
欲行是術。必先得一數。曰「限」。乃行是術曰。
3+
有數零。名之曰「計」。
4+
吾有一列。名之曰「斐氏列」。
5+
為是「限」遍。
6+
若「計」小於二者。
7+
充「斐氏列」以「計」。
8+
若非。
9+
減「計」以一。名之曰「計前」。
10+
夫「斐氏列」之「計前」。名之曰「甲」。
11+
夫「斐氏列」之「計」。名之曰「乙」。
12+
加「甲」以「乙」。名之曰「新數」。
13+
充「斐氏列」以「新數」。
14+
云云。
15+
加「計」以一。昔之「計」者。今其是也。
16+
乃得「斐氏列」矣。
17+
是謂「斐氏列」之術也。
18+
19+
施「斐氏列」於二十。書之。

examples/hanoi_stack.wy

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
吾有一術。名之曰「漢諾塔」。
2+
欲行是術。必先得四數。曰「盤數」。曰「起」。曰「過」。曰「訖」。乃行是術曰。
3+
吾有五言。曰「「天竺有一漢諾塔。初置」」。曰「盤數」。曰「「金盤於柱」」。曰「起」。曰「「。」」。書之。
4+
吾有五言。曰「「欲盡其過」」。曰「過」。曰「「移至」」。曰「訖」。曰「「。」」。書之。
5+
施「三柱初始」於「盤數」。於「起」。於「過」。於「訖」。
6+
吾有一列。名之曰「棧」。
7+
吾有一列。名之曰「史」。
8+
有數零。名之曰「步數」。
9+
施「新步元」於「盤數」。於「起」。於「過」。於「訖」。名之曰「外元」。
10+
恆為是。
11+
夫「棧」之長。變其。名之曰「棧空」。
12+
夫「外元」之「「盤數」」。變其。名之曰「外元盤零」。
13+
夫「外元盤零」「棧空」中無陰乎。名之曰「當止」。
14+
若「當止」者乃止也。
15+
施「鏡步元」於「外元」。名之曰「內元」。
16+
恆為是。
17+
若「內元」之「「盤數」」不大於零者乃止也。
18+
施「入棧」於「棧」。於「內元」。
19+
夫「內元」之「「盤數」」者。減其以一。昔之「內元」之「「盤數」」者。今其是矣。
20+
夫「內元」之「「過」」者。名之曰「臨甲」。
21+
昔之「內元」之「「過」」者。今「內元」之「「訖」」是矣。
22+
昔之「內元」之「「訖」」者。今「臨甲」是矣。
23+
云云。
24+
施「首元」於「棧」。名之曰「外元」。
25+
施「出棧」於「棧」。昔之「棧」者。今其是矣。
26+
吾有一列。名之曰「步」。
27+
夫「外元」之「「起」」。名之曰「步起」。
28+
夫「外元」之「「訖」」。名之曰「步訖」。
29+
充「步」以「步起」。以「步訖」。
30+
加「步數」以一。昔之「步數」者。今其是矣。
31+
施「書步」於「步數」。於「步」。
32+
施「三柱更新」於「步」。
33+
施「畫步」。
34+
夫「外元」之「「盤數」」者。減其以一。昔之「外元」之「「盤數」」者。今其是矣。
35+
夫「外元」之「「起」」者。名之曰「臨乙」。
36+
昔之「外元」之「「起」」者。今「外元」之「「過」」是矣。
37+
昔之「外元」之「「過」」者。今「臨乙」是矣。
38+
云云。
39+
吾有三言。曰「「噫。吁嚱。共步」」。曰「步數」。曰「「也。」」。書之。
40+
書之。
41+
是謂「漢諾塔」之術也。
42+
43+
今有一物。名之曰「三柱」。其物如是。
44+
物之「「柱名」」者。列曰零。
45+
物之「「起」」者。數曰零。
46+
物之「「過」」者。數曰零。
47+
物之「「訖」」者。數曰零。
48+
是謂「三柱」之物也。
49+
50+
吾有一物。名之曰「步元」。其物如是。
51+
物之「「盤數」」者。數曰零。
52+
物之「「起」」者。元曰零。
53+
物之「「過」」者。元曰零。
54+
物之「「訖」」者。元曰零。
55+
是謂「步元」之物也。
56+
57+
今有一術。名之曰「三柱初始」。欲行是術。必先得四數。曰「盤數」。曰「起」。曰「過」。曰「訖」。乃行是術曰。
58+
夫「盤數」。昔之「三柱」之「「起」」者。今其是矣。
59+
吾有一列。名之曰「柱名」。
60+
充「柱名」以「起」。以「過」。以「訖」。
61+
夫「柱名」。昔之「三柱」之「「柱名」」者。今其是矣。
62+
是謂「三柱更新」之術也。
63+
64+
今有一術。名之曰「三柱更新」。欲行是術。必先得一列。曰「步」。乃行是術曰。
65+
夫「步」之一者。名之曰「步起」。
66+
夫「步」之二者。名之曰「步訖」。
67+
夫「三柱」之「「柱名」」者。名之曰「柱名」。
68+
夫「柱名」之一。名之曰「起柱名」。
69+
夫「柱名」之二。名之曰「過柱名」。
70+
夫「柱名」之三。名之曰「訖柱名」。
71+
若「步起」等於「起柱名」者。夫「三柱」之「「起」」者。減其以一。昔之「三柱」之「「起」」者。今其是矣云云。
72+
若「步起」等於「過柱名」者。夫「三柱」之「「過」」者。減其以一。昔之「三柱」之「「過」」者。今其是矣云云。
73+
若「步起」等於「訖柱名」者。夫「三柱」之「「訖」」者。減其以一。昔之「三柱」之「「訖」」者。今其是矣云云。
74+
若「步訖」等於「起柱名」者。夫「三柱」之「「起」」者。加其以一。昔之「三柱」之「「起」」者。今其是矣云云。
75+
若「步訖」等於「過柱名」者。夫「三柱」之「「過」」者。加其以一。昔之「三柱」之「「過」」者。今其是矣云云。
76+
若「步訖」等於「訖柱名」者。夫「三柱」之「「訖」」者。加其以一。昔之「三柱」之「「訖」」者。今其是矣云云。
77+
是謂「三柱更新」之術也。
78+
79+
吾有一術。名之曰「新步元」。欲行是術。必先得一數。曰「盤數」。三元。曰「起」。曰「過」。曰「訖」。乃行是術曰。
80+
吾有一物。名之曰「新元」。
81+
昔之「新元」之「「盤數」」者。今「盤數」矣。
82+
昔之「新元」之「「起」」者。今「起」矣。
83+
昔之「新元」之「「過」」者。今「過」矣。
84+
昔之「新元」之「「訖」」者。今「訖」矣。
85+
乃得「新元」矣。
86+
是謂「新步元」之術也。
87+
88+
吾有一術。名之曰「鏡步元」。欲行是術。必先得一物。曰「步元」。乃行是術曰。
89+
吾有一物。名之曰「新元」。
90+
夫「步元」之「「盤數」」。
91+
昔之「新元」之「「盤數」」者。今其是矣。
92+
夫「步元」之「「起」」。
93+
昔之「新元」之「「起」」者。今其是矣。
94+
夫「步元」之「「過」」。
95+
昔之「新元」之「「過」」者。今其是矣。
96+
夫「步元」之「「訖」」。
97+
昔之「新元」之「「訖」」者。今其是矣。
98+
乃得「新元」矣。
99+
是謂「鏡步元」之術也。
100+
101+
吾有一術。名之曰「截取」。欲行是術。必先得一列。曰「列」。二數。曰「起」。曰「止」。乃行是術曰。
102+
吾有一列。名之曰「新列」。
103+
吾有一數。曰「起」。名之曰「針」。
104+
恆為是。若「針」大於「止」者乃止也。
105+
夫「列」之「針」。充「新列」以其。
106+
加「針」以一。昔之「針」者。今其是也。
107+
乃得「新列」矣。
108+
是謂「截取」之術也。
109+
110+
吾有一術。名之曰「入棧」。欲行是術。必先得一列。曰「棧」。一元。曰「元」。乃行是術曰。
111+
吾有一列。曰「棧」。名之曰「新棧」。
112+
施「鏡步元」於「元」。名之曰「新元」。
113+
充「新棧」以「新元」。
114+
乃得「新棧」矣。
115+
是謂「入棧」之術也。
116+
117+
吾有一術。名之曰「首元」。欲行是術。必先得一列。曰「棧」。乃行是術曰。
118+
夫「棧」之長。名之曰「尾」。
119+
夫「棧」之「尾」。名之曰「出元」。
120+
乃得「出元」矣。
121+
是謂「首元」之術也。
122+
123+
吾有一術。名之曰「出棧」。欲行是術。必先得一列。曰「棧」。乃行是術曰。
124+
夫「棧」之長。名之曰「尾」。
125+
減「尾」以一。昔之「尾」者。今其是矣。
126+
施「截取」於「棧」。於一。於「尾」。乃得其矣。
127+
是謂「出棧」之術也。
128+
129+
吾有一術。名之曰「書步」。
130+
欲行是術。必先得一數。曰「步數」。一列。曰「步」。乃行是術曰。
131+
夫「步」之一者。名之曰「步起」。
132+
夫「步」之二者。名之曰「步訖」。
133+
吾有七言。曰「「步」」。曰「步數」。曰「「。自」」。曰「步起」。
134+
曰「「移至」」。曰「步訖」。曰「「。」」。書之。
135+
是謂「書步」之術也。
136+
137+
吾有一術。名之曰「畫步」。是術曰。
138+
夫「三柱」之「「柱名」」者。名之曰「柱名」。
139+
夫「三柱」之「「起」」者。名之曰「盤」。
140+
減「盤數」以「盤」。名之曰「柱」。
141+
夫「柱名」之一。名之曰「起柱名」。
142+
銜「「【」」以「起柱名」。以「「】」」。名之曰「行」。
143+
為是「盤」遍。加「行」以「「〇」」。昔之「行」者。今其是矣。云云。
144+
為是「柱」遍。加「行」以「「一」」。昔之「行」者。今其是矣。云云。
145+
夫「行」者。書之。
146+
夫「三柱」之「「過」」者。名之曰「盤」。
147+
減「盤數」以「盤」。名之曰「柱」。
148+
夫「柱名」之二。名之曰「過柱名」。
149+
銜「「【」」以「過柱名」。以「「】」」。名之曰「行」。
150+
為是「盤」遍。加「行」以「「〇」」。昔之「行」者。今其是矣。云云。
151+
為是「柱」遍。加「行」以「「一」」。昔之「行」者。今其是矣。云云。
152+
夫「行」者。書之。
153+
夫「三柱」之「「訖」」者。名之曰「盤」。
154+
減「盤數」以「盤」。名之曰「柱」。
155+
夫「柱名」之三。名之曰「訖柱名」。
156+
銜「「【」」以「訖柱名」。以「「】」」。名之曰「行」。
157+
為是「盤」遍。加「行」以「「〇」」。昔之「行」者。今其是矣。云云。
158+
為是「柱」遍。加「行」以「「一」」。昔之「行」者。今其是矣。云云。
159+
夫「行」者。書之。
160+
書之。
161+
是謂「畫步」之術也。
162+
163+
有數三。名之曰「盤數」。
164+
施「漢諾塔」於「盤數」。於「「甲」」。於「「乙」」。於「「丙」」。

examples/linglong_tower.wy

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
吾有一言。曰「「繞口令 玲瓏塔」」。書之。
2+
3+
吾有一術。名之曰「數玲瓏塔」。
4+
欲行是術。必先得一數。曰「層」。乃行是術曰。
5+
6+
若「層」等於三者。
7+
吾有一言。曰「「玲瓏塔。塔玲瓏。接過了二層數 三 層。」」。書之。
8+
若非。若「層」等於一十三者。
9+
吾有一言。曰「「玲瓏塔。塔玲瓏。到了尖兒的 一十三 層。」」。書之。
10+
若非。
11+
吾有三言。曰「「玲瓏塔。塔玲瓏。玲瓏寶塔第」」。曰「層」。曰「「層。」」。書之。
12+
云云。云云。
13+
14+
乘「層」以四。名之曰「四倍之」。
15+
16+
若「層」等於二者。
17+
吾有三言。曰「「兩 张高桌」」。曰「四倍之」。曰「「條腿。兩 個和尚 兩 本經。」」。書之。
18+
19+
吾有一言。曰「「兩 副铙钹 兩 口磬。兩 個木了魚子 兩 盞燈。」」。書之。
20+
21+
吾有四言。曰「「兩 個金玲整」」。曰「四倍之」。曰「「兩。風兒一刮響嘩楞。」」。書之乃得矣。
22+
若非。
23+
吾有八言。曰「層」。曰「「张高桌」」。曰「四倍之」。曰「「條腿。」」。
24+
曰「層」。曰「「個和尚」」。曰「層」。曰「「本經。」」。書之。
25+
26+
吾有八言。曰「層」。曰「「副铙钹」」。曰「層」。曰「「口磬。」」。
27+
曰「層」。曰「「個木了魚子」」。曰「層」。曰「「盞燈。」」。書之。
28+
云云。
29+
30+
若「四倍之」不大於九者。
31+
吾有四言。曰「層」。曰「「個金玲整」」。曰「四倍之」。曰「「兩。風兒一刮響嘩楞。」」。書之乃得矣。
32+
若非。
33+
吾有四言。曰「層」。曰「「個金玲」」。曰「四倍之」。曰「「兩。風兒一刮響嘩楞。」」。書之乃得矣。
34+
云云。
35+
36+
是謂「數玲瓏塔」之術也。
37+
38+
有數一十又三。名之曰「最高層」。
39+
40+
有數一。名之曰「層」。
41+
42+
恆為是。若「層」大於「最高層」者乃止也。
43+
44+
施「數玲瓏塔」於「層」。
45+
46+
加「層」以二。昔之「層」者。今其是矣云云。
47+
48+
吾有一言。曰「「玲瓏寶塔往回數。」」。書之。
49+
50+
減「層」以三。昔之「層」者。今其是矣。
51+
52+
恆為是。若「層」小於二者乃止也。
53+
54+
施「數玲瓏塔」於「層」。
55+
56+
減「層」以二。昔之「層」者。今其是矣云云。

0 commit comments

Comments
 (0)