文言编程语言/wenyan-lang的教程来啦!!!

这是一个大学生开源的一个文言文编程语言。

 

关键是这门文言文的编程语言,是一位卡内基梅隆大学(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
	若「甲」之長不大於一者。
		乃得「甲」
	也。
	吾有三列。名之曰「首」。曰「頷」。曰「尾」。

	夫「甲」之一。名之曰「甲一」。
	充「頷」以「甲一」。
	夫「甲」之其餘。名之曰「甲餘」。

	凡「甲餘」中之「丁」。
		若「丁」小於「甲一」者。
			充「首」以「丁」。
		若非。
			充「尾」以「丁」
		也。
	云云。
	施「快排」於「首」。昔之「首」者。今其是矣。
	施「快排」於「尾」。昔之「尾」者。今其是矣。

	銜「首」以「頷」以「尾」。名之曰「乙」。
	乃得「乙」。

是謂「快排」之術也。

吾有一列。名之曰「己」。
充「己」以五。以三。以二十。以八。以三十五。以七百。
施「快排」於「己」。書之。

 

posted @ 2022-11-27 10:33  全角的!与半角的!  阅读(336)  评论(0编辑  收藏  举报