中文编程语言_文言文编程语言,让你明白什么叫“中文比英语还难”。
毕竟有易语言在前,有人认为中文可以降低国人学习编程的门槛,也增强汉语的国际地位。然而最近大火的文言文编程语言,让你明白什么叫“中文比英语还难”。
Hello wenyan
最近有个 GitHub 项目火了 —— 文言编程语言 / wenyan-lang。
项目地址:https://github.com/LingDong-/wenyan-lang
这一项目并不是简单的将程序中的英文字符换成了中文,而是利用 NLP 的一些技术,将文言文程序语法转换到 JavaScript 或 Python 运行,有一定的技术难度。项目问世几日即获赞 2.2K,还得到了很多人的微博转发。
学语言嘛,当然先从 “Hello world” 开始,看看文言版怎么写:
吾有一數。曰三。名之曰「甲」。為是「甲」遍。 吾有一言。曰「「問天地好在。」」。書之。云云。
没看懂,编译成 JavaScript:
var n = 3;for (var i = 0; i < n; i++) { console.log("問天地好在。");}
运行:
問天地好在。問天地好在。問天地好在。
完全的中文编程有木有,使用古汉语语法,具有图灵完整性,可以编译成 JavaScript 或 Python。
如同古人篆书一般,一顿之乎者也,程序写好了!
基础语法
赶紧学起来,第一章变量走起,中文编程肯定不能用 abc,还好我们有甲乙丙:
wenyan | JavaScript |
吾有一數。曰三。名之曰「甲」。
|
var a = 3;
|
有數五十。名之曰「大衍」。
|
var dayan = 50;
|
吾有一言。曰「「噫吁戲」」。名之曰「乙」。
|
var b = "alas!";
|
true/false 我们也有对应的 陽/陰(繁体的阳/阴),类型就称为“爻”(卦符的基本符号):
wenyan | JavaScript |
吾有一爻。曰陰。名之曰「丙」。
|
var c = false;
|
if 判断也没问题:
wenyan | JavaScript |
若三不大於五者。乃得「「想當然耳」」。若非。乃得「「怪哉」」也。
|
if(3<=5){return "of course"}else{return "no way"}
|
循环更为简洁,直接声明次数,最后以云云结尾:
wenyan | JavaScript |
為是百遍。⋯⋯ 云云。
|
for (var i = 0; i < 100; i++){ ... }
|
恆為是。⋯⋯ 云云。
|
while (true) { ... }
|
乃止。
|
break;
|
加减乘除一应俱全,连逻辑运算符都支持:
wenyan | JavaScript |
加一以二。乘其以三。
|
(1+2)*3
|
除十以三。所餘幾何。
|
10%3
|
減七百五十六以四百三十三。名之曰「甲」。
|
var a = 756-433;
|
夫「甲」「乙」中有陽乎。
|
`a |
容器类型也支持,而且尊重汉语习惯,首个下标是从一开始:
wenyan | JavaScript |
吾有一列。名之曰「甲」。充「甲」以四。以二。
|
var a = []; a.push(4, 2);
|
夫「寶劍」之長。
|
sword.length;
|
夫「甲」之一。
|
a[0]
|
夫「玫瑰」之「「名」」。
|
rose["name"]
|
下面是进阶语法了,定义一个函数 吾有一術:
wenyan | JavaScript |
吾有一術。名之曰「吸星大法」。是術曰。⋯⋯是謂「吸星大法」之術也。
|
function f(){...}
|
吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」乃行是術曰。⋯⋯是謂「六脈神劍」之術也。
|
function f(a,b,c,d,e,f){...}
|
吾有一術。名之曰「翻倍」。欲行是術。必先得一數。曰「甲」。乃行是術曰。乘「甲」以二。名之曰「乙」。乃得「乙」。是謂「翻倍」之術也。
|
function double(a){var b = a * 2; return b;}
|
施「翻倍」於「大衍」。
|
double(dayan);
|
吾有一數。曰五。書之。
|
console.log(5);
|
代码实例
作者提供了经典程序题目的文言版代码,比如埃拉托斯特尼筛法、 快速排序、曼德博集合、汉诺塔。
另外作者还提供了在线 IDE,可以直接编译执行代码。
快排
曼德博集合
看完这些代码让我感觉:
《九章算术》就是一本算法导论;
《孙子兵法》就是一本安全攻防;
《易经》大概是一本二进制逆向吧...
中文编程语言_文言文编程语言,让你明白什么叫“中文比英语还难”。相关推荐
- 可视化编程语言_可视化编程语言影响图
可视化编程语言 Gephi和Sigma.js的网络可视化教程 (A network visualization tutorial with Gephi and Sigma.js) Here's a p ...
- mysql数据库 中文乱码_在CMD中操作mysql数据库出现中文乱码解决方案
百度了一下..有说将cmd字符编码用chcp命令改为65001(utf8字符编码),可这样之后根本无法输入中文,查询出的中问结果依旧乱码 其实,只要保证cmd客户端和MySQL两者编码一致即可. 但现 ...
- 易语言 mysql查询 中文乱码_大佬们E语言连接MYSQL输出中文乱码怎么破
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 .版本 2 .支持库 mysql .支持库 iext .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 数据库连接句柄 = 连接MySql (& ...
- springmvcget中文乱码_解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题...
新配置一个spring的MVC项目,发现对Get请求的中文参数出现了乱码: 查看了SpingMVC中关于编码的配置(在web.xml中),如下: encodingFilter org.springfr ...
- python输入中文教程_如何用Python从头开始实现一个中文拼音输入法?
中文输入法是一个历史悠久的问题,但也实在是个繁琐的活,不知道这是不是网上很少有人分享中文拼音输入法的原因,接着这次NLP Project的机会,我觉得实现一发中文拼音输入法,看看水有多深,结果发现还挺 ...
- python可不可以用中文编写_震惊!!!python可以用中文来写代码
说明: 偶尔间试了一下,python可以用中文来写代码,除了一些python内置函数,和运算符不能用中文外,其它的比如新定义的类名.函数名.变量名,甚至是函数间传的参数都可以用中文来代替.这是国人全民 ...
- lua 不支持中文字符_英雄联盟跳票?不支持中文?别急看这里!界面最强翻译!...
大家期待英雄联盟手游已经很久了,16 号放出消息苦苦等待 28 号.老范跟大家的心情是一样的,注册拳头账号遇到种种问题,半天注册不成功等,要么就是卡在最后一步. 注册麻烦就不用说了,约定好的日子就跳票 ...
- idea设置中文界面_《英雄联盟手游》游戏界面中文翻译图文分享 如何设置中文...
导读 英雄联盟手游怎么设置中文?英雄联盟手游界面英文什么意思?我们都知道这款游戏刚进入以后都是英文或者其他的确的语言,很家都想知道游戏界面对应的中文意思!话不多说,下面,就随小编来了解一下吧! 英雄联 ...
- birt什么意思中文翻译_有含义的英文网名带中文翻译
Later(后来) Virus(病毒) Review(旧爱) wave(浪) Dimples(小酒窝) Rascal(痞子) Blove pupil(蓝色瞳孔) 比较有含义的英文游戏名字 holic( ...
最新文章
- 6个快速优化回归测试套件的方法,你都知道吗?
- 电影天堂React Native 客户端
- 查看idea的错误日志信息
- bootstrap中导航、导航栏、表单及自定义表单
- 从程序员到项目经理(9):程序员加油站 -- 再牛也要合群【转载】
- 中lisp文件_关于 Emacs 中的变量你需要知道的事情 | Linux 中国
- 优化网页代码提高网页访问速度
- ORACLE备份策略(ORACLE BACKUP STRATEGY)
- 红旗与火狐携手打造优质开源体验,推出红旗Linux专版火狐浏览器
- 搭建自己的ngrok服务
- cisco ASA
- shell脚本操作hbase的命令
- 开源 ASP.NET CMS
- Dorado7自定义下拉框
- Centos校准时间
- 2020伊始,电动车又给自己刷了一遍谎言buff
- 11.1-4日,RTE2022 第八届实时互联网大会邀您“聚享万象”,线上报名开启
- 智能家居系统模型设计2.0
- 保护信息安全,实名认证该怎么选?
- vue3+ts+vite,使用高德api实现搜索城市展示在地图上