这是一个大学生开源的一个文言文编程语言。
关键是这门文言文的编程语言,是一位卡内基梅隆大学(CMU)的大四学生开发。利用 NLP 的一些技术,将文言文程序语法转换到 JavaScript 或 Python 运行,并不是简单的将程序中的英文字符换成了中文。
如要体验这门语言就到Wenyan Online IDE
下面就是这门语言的操作。
1.定义数据
文言 javascript
吾有一數。曰三。名之曰⌈甲⌋。 var a = 3;
有數五十。名之曰⌈大衍⌋。 var dayan = 50;
昔之⌈甲⌋者。今⌈大衍⌋是也。 a = dayan;
吾有一言。曰⌈⌈abc⌋⌋。名之曰⌈乙⌋。 var b =" abc";
吾有一爻。曰蔭。名之曰⌈丙⌋。 var c = false;
吾有一列。名之曰⌈丁⌋。 var d = [];
吾有三數。曰一。曰二。曰五。名之曰⌈甲⌋。曰⌈乙⌋。曰⌈丙⌋。 var a =1,b = 2,c=5;
2.流程控制
文言 JavaScript
若三大於二者。乃得⌈⌈想當然耳⌋⌋也。 if (3>2){return "of course";}
若三不大於五者。乃得「「想當然耳」」 if(3<=5){return "of course"}else{return "noway"}
為是百遍。……云云。 for(vari=0;i100;i++){...}
恒為是。……云云。 while (true){...}
凡「天地」中之「人」。……云云。 for (var human of world){...}
乃止。 break;
3.运算
文言 JavaScript
加一以二。 1+2
加一於二。 2+1
加一以二。乘其以三。 (1+2)*3
除十以三。所餘幾何。 10%3
減七百五十六以四百三十三。名之曰「甲」。 var a=756-433;
夫「甲」「乙」中有陽乎。 a||b
夫「甲」「乙」中無陰乎。 a&&b
4.容器
文言 JavaScript
吾有一列。名之曰⌈甲⌋。充⌈甲⌋以四。以二。 var a = []; a.push(4,2);
銜⌈甲⌋以⌈乙⌋。以⌈丙⌋。 a.concat(b).concat(c);
夫⌈甲⌋之一。 a[0];
夫⌈甲⌋之其餘。 a.slice(1);
夫⌈玫瑰⌋之⌈⌈名⌋⌋。 rose["name"]
夫⌈寳劍⌋之辰。 sword.lengh;
5.函数
文言 JavaScript
吾有一術。名之曰⌈吸星大法⌋。是術曰。……是謂⌈吸星大法⌋之術也。 function f(){……}
吾有一術.名之曰⌈六脈神劍⌋。欲行是術。必先得六數。曰⌈甲⌋。曰⌈乙⌋。
曰⌈丙⌋。曰⌈丁⌋。曰⌈戊⌋。曰⌈己⌋乃行是術曰。……是謂⌈六脈神劍⌋之術也。 function f(a,b,c,d,e,f){……}
吾有一術.名之曰⌈翻倍⌋。欲行是術。必先得一數。。曰⌈甲⌋。乃行是術曰。
乘⌈甲⌋以二。名之曰⌈乙⌋。乃得⌈乙⌋。是謂⌈翻倍⌋之術也。 function double(a){var b = a * 2;return b;}
施⌈翻倍⌋於⌈大衍⌋。 double(dayan);
吾有一數。曰一。書之。 console.log(1);
这样我们就可以实现一些基本操作,如:
//快速排序
吾有一術。名之曰「快排」。欲行是術。必先得一列。曰「甲」。乃行是術曰。 //摘自https://ide.wy-lang.org/?file=quicksort
若「甲」之長不大於一者。
乃得「甲」
也。
吾有三列。名之曰「首」。曰「頷」。曰「尾」。
夫「甲」之一。名之曰「甲一」。
充「頷」以「甲一」。
夫「甲」之其餘。名之曰「甲餘」。
凡「甲餘」中之「丁」。
若「丁」小於「甲一」者。
充「首」以「丁」。
若非。
充「尾」以「丁」
也。
云云。
施「快排」於「首」。昔之「首」者。今其是矣。
施「快排」於「尾」。昔之「尾」者。今其是矣。
銜「首」以「頷」以「尾」。名之曰「乙」。
乃得「乙」。
是謂「快排」之術也。
吾有一列。名之曰「己」。
充「己」以五。以三。以二十。以八。以三十五。以七百。
施「快排」於「己」。書之。
标签:wenyan,lang,编程语言,一術,JavaScript,快排,文言,var,乃得 From: https://www.cnblogs.com/demc/p/16929106.html