文言文编程语言|老外来了也得先学论语

最近看到一个有意思的开源项目 wenyan,主要功能就是使用文言文来编写代码。

按项目说明 “Wenyan” 是一种遵循中国古典文学的语法和语调的编程语言。

此外,文言的字符集仅包含繁体汉字和「」引号,确保古代中国人能够阅读。

该编程语言的文件名后缀为:.wy

按这个说法把这个编程语言穿越到古代应该会出现很多大师,搞不好孔子都能成为编程语言的缔造者。

项目开源地址:https://github.com/wenyan-lang/wenyan

另外这个语言也整了一本入门教程叫《文言陰符》,整本手册都是以文言文写成的,所以入门也是难度超高:

在线手册:https://book.wy-lang.org/

开源地址:https://github.com/wenyan-lang/book

在线文档看起来也是非常的古风,老外来学不得先从论语入门:

再来看下该语言的序:

– 夫唐、虞__之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於__公輸__之__木鳶,善於__武侯__之__流馬_;程式語言之多,繁若__《天官》之星宿,奇勝《山經》之走獸。,或以速稱。,各爭文采。方知__鬼之所以夜哭,天之所以雨粟。然以文言編程者 ,似所未有。此誠非文脈之所以傳,文心之所以保。嗟予小子,遂有斯志。然則數寸之烏絲猶覆於頭,萬卷之素書未破於手;一身長羈於遠邦,兩耳久曠于__雅言__。然夫文章者吾之所宿好,程式者偶承時人之謬譽。故__希孟__不慚年少,莊生__不望__無涯。乃作斯言。誠未能嘔瀝__長吉__之__心血__,亦庶幾免於__義山__之__流沫__。既成之後,復學__干將鑄劍__而自飼,越王嚐糞__而當先。自謂偶追《十書》之筆意,但恨少__八家__之淋漓。此__子山__所謂__士衡撫掌而甘心,平子見陋而固宜。然則雖實__覆甕__之質,尚存斧正之望;雖乏__呂相__之金,_易字__之渴蓋同。此亦開源之大義,吾輩之所以勉勵也。一笑。

看完,直接整不会了,我也不研究了,让 AI 翻译下内容如下:

– 在唐尧、虞舜时代,人们用结绳记事就能治理国家,用屈指计算就足够了。当时哪里能预料到百代之后,计算机技术如此巧妙,精密超过鲁班的木鸢,灵活优于诸葛亮的木牛流马;编程语言种类繁多,如《天官书》里的星宿般数不胜数,奇妙胜过《山海经》中的走兽。鼠标、蟹形、钻石、鱼形等各自以速度称雄。蛇形、象形、骆驼形、犀牛形等各争奇斗艳。这时人们才明白鬼为什么会在夜里哭泣,天为什么会降下谷子。然而,用文言文来编程,似乎前所未有。这确实不是文脉传承的方式,也不是文心保持的方法。我这个小子,遂有此志向。然而我的头上还有几寸黑发,手中还未读破万卷书;我一身长期羁留在异国他乡,两耳很久没听到雅言。然而文章是我一直以来的爱好,编程则是偶然得到了时人的错误赞誉。所以像孟子那样不愧于年轻,像庄子那样不羡慕无涯。于是写下这些话。虽然不能完全倾尽李贺的心血,但也希望避免成为李商隐那样的流言蜚语。完成之后,学习干将铸剑而自我品尝,像越王尝粪那样率先体验。自认为偶尔追随《十书》的笔意,只恨少了八大家的淋漓尽致。这就像子山所说的,陆机拍掌而甘心,扬雄见到也觉得适宜。然而,虽然作品粗糙如覆在甕上的质朴,还寄希望于斧正之人;虽然缺乏吕相的金玉,但对文字修改的渴望仍然相同。这也是开源的大义,是我们这一辈人所努力的方向。聊此一笑。


接下来看看怎么输出文言文版的 “Hello, World!”:

与以下 JavaScript 代码等价:

再来看斐波那契的实现:

编程成 JavaScript 代码如下所示:

感兴趣的,可以先使用在线测试工具试用看看:https://ide.wy-lang.org/

也可以使用以下命令安装本地编译器:

npm install -g @wenyan/cli

使用 wenyan 来执行代码文件:

wenyan examples/helloworld.wy

另外 IDE 方面大家也不用担心:

VSCode、Vim、Sublime 都有对应的插件。

VSCode 插件开源地址:https://github.com/antfu/wenyan-lang-vscode

VSCode 插件安装地址:https://marketplace.visualstudio.com/items?itemName=antfu.wenyan-lang

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1473197.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Unity数据存储】Unity中使用SqLite数据库进行数据持久化

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 专栏交流🧧&…

win11 去除文件预览图并保留具体图片预览

运行下列脚本: off echo. taskkill /f /im explorer.exe timeout 2 /nobreak>nul echo. DEL /F /S /Q /A %LocalAppData%\Microsoft\Windows\Explorer\thumbcache_*.db REG ADD "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\B…

C语言编译和编译预处理

编译预处理 • 编译是指把高级语言编写的源程序翻译成计算机可识别的二进制程序(目标程序)的过程,它由编译程序完成。 • 编译预处理是指在编译之前所作的处理工作,它由编译预处理程序完成 在对一个源程序进行编译时,…

Linux系统(CentOS)安装iptables防火墙

1,先检查是否安装了iptables 检查安装文件-执行命令:rpm -qa|grep iptables 检查安装文件-执行命令:service iptables status 2,如果安装了就卸装(iptables-1.4.21-35.el7.x86_64 是上面命令查出来的版本) 执行命令&#xff1a…

Nginx(http配置、https配置)访问Spring Boot 项目

前文 记录一下在linux服务器下配置nginx中nginx.conf文件代理访问springboot项目 1. spring boot.yml配置 其他mysql,redis,mybatis等之类的配置就不一一列出了 # 自定义配置 为了等下验证读取的配置文件环境 appName: productserver:port: 8083 # 应用服务 WEB 访问端口s…

分享:Motionity-开源的Web端动画编辑器

Motionity是一个免费且开源的Web端动画编辑器,它结合了After Effects和Canva的优点,为用户提供了强大的动画编辑功能。支持视频剪切、图像搜索过滤、文本动画库、图层蒙版等功能。 一、项目背景与特点 开源项目:Motionity是一个开源项目&…

docker push 推送镜像到阿里云仓库

1.登陆阿里云 镜像服务,跟着指引操作就行 创建个人实例,创建命名空间、镜像仓库,绑定代码源头 2.将镜像推送到Registry $ docker login --username*** registry.cn-beijing.aliyuncs.com $ docker tag [ImageId] registry.cn-beijing.aliy…

全国青少年软件编程等级考试-四级-奇偶之和(真题)

题目:奇偶之和 1.准备工作 (1)保留舞台中的小猫角色; 2.功能实现 (1)分别计算1~100中,奇数之和,偶数之和; (2)说出奇数之和,偶数之和。 讲解: 1、如何判断奇偶数 奇数是指除以2有…

「媒体邀约」全国巡演,多地推介会,如何做好媒体宣传

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传加速季,100万补贴享不停,一手媒体资源,全国100城线下落地执行。详情请联系胡老师。 我们在做多地活动的时候,比如演唱会&#xff…

Qt 基础组件速学 interView框架

学习目标: interView理解和自定义模型操作 前置环境 运行环境:qt creator 4.12 学习内容: interView是一个具有插件架构的Qt应用程序框架,它旨在提供一个易于扩展和定制的应用程序开发解决方案。 在interView框架中,这三者协作的方式如下: 视图类从…

【Python系列】数字的bool值

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java | Leetcode Java题解之第218题天际线问题

题目&#xff1a; 题解&#xff1a; class Solution {public List<List<Integer>> getSkyline(int[][] buildings) {PriorityQueue<int[]> pq new PriorityQueue<int[]>((a, b) -> b[1] - a[1]);List<Integer> boundaries new ArrayList&l…

Spring Boot Vue 毕设系统讲解1

项目结构 包说明 db&#xff1a;文件夹是存放数据脚本文件的 annotation&#xff1a; 系统自定义注解 config&#xff1a;系统定义的配置类 controller&#xff1a; 系统接口控制器类 dao&#xff1a; 系统dao类编写数据库查询方法和数据库交互 entity&#xff1a;数据库…

Fastapi 项目第二天首次访问时数据库连接报错问题Can‘t connect to MySQL server

问题描述 Fastapi 项目使用 sqlalchemy 连接的mysql 数据库&#xff0c;每次第二天首次访问数据库相关操作&#xff0c;都会报错&#xff1a;sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, “Can’t connect to MySQL server on ‘x.x.x.x’ ([Err…

C++deque容器

文章目录 deque容器概念deque操作deque对象的带参数构造deque头部和末尾的添加移除操作deque的数据存取deque与迭代器deque赋值deque插入deque删除 deque容器概念 deque是双端数组&#xff0c;而vector是单端的。 deque头部和尾部添加或移除元素都非常快速, 但是在中部安插元…

ceph-volume inventory KeyError: ‘TYPE‘ 处理

是否有人跟我一样碰到这样的情况 执行ceph-volume inventory报错 还好有错误日志可以看 [2024-07-05 11:40:40,540][ceph_volume.process][INFO ] Running command: /usr/sbin/blkid -c /dev/null -p /dev/ceph-c5fd6684-3851-49ab-bd44-f6743a79e24f/osd-block-42d41cd1-82…

爬虫进阶:Selenium与Ajax的无缝集成

爬虫与Ajax的挑战 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分内容。这为用户带来了更好的体验&#xff0c;但同时也使得爬虫在抓取数据时面临以下挑战&#xff1a; 动态内容加载&#xff…

伪元素content追加文字使用小技巧

E::before和E::after本身的作用是追加字&#xff0c;直接在文字后面追加链接 <!DOCTYPE html> <html lang"zh-cn"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…

使用myCobot280和OAK-D OpenCV DepthAI摄像头制作一个实时脸部跟踪的手机支架!

引言 由于YouTube和Netflix的出现&#xff0c;我们开始躺着看手机。然而&#xff0c;长时间用手拿着手机会让人感到疲劳。这次我们制作了一个可以在你眼前保持适当距离并调整位置的自动移动手机支架&#xff0c;让你无需用手拿着手机。请务必试试&#xff01; 准备工作 这次我们…

bpftrace几种使用实例

1. 排查内存泄漏 memory.c memory.bt 可以执行相关memory&#xff0c;用bpftrace追踪malloc和free的过程 修改memory.bt&#xff0c;加上malloc和free统计&#xff0c;重新执行 2. 验证tcp连接关闭是应用关闭还是内核关闭 nginx服务启动后&#xff0c;会处于监听状态&…