python怎么读单词和古文,用文言文写Python

本文介绍了一个尝试将文言文编程语言转换为Python代码的项目。通过使用Haskell的Parsec库解析文言文,建立文言文与Python语法的映射表,然后进行替换操作,最终将转换后的列表转回格式化的字符串。由于Python不支持中文变量名,作者提出了声明变量的解决方式,并展示了如何处理变量、函数和类的命名转换。尽管目前的实现有限,但该项目展示了一种新颖的编程思维。
摘要由CSDN通过智能技术生成

懒得看文章直接找repo的话点这里

前言

最近想到了文言文编程这个脑洞,正好又看到Haskell里面有Parsec这个包,然后就决定试一下了orz

所以打算从最简单的开始入手,也就是将有一定格式的文言文翻译成Python的代码,比如像下面这个(插入排序):

有略名 排序 其参名 数列 其文曰

凡 巡 之于 数数自 1 至 求长于 数列 之中 所得之数 是也 为

媒 者 数列 诸 巡 位之数 也

今 者 巡 减 1 也

复为之,方 今 非小于 0 与 媒 小于 数列 诸 今 位之数 乃止

数列 诸 今 加 1 所得之数 位之数 换作 数列 诸 今 位之数

今 谪 1 也

数列 诸 今 加 1 位之数 换作 媒 也

可以看到整体的样式是和Python的代码是一致的,这样的话可以减少我们写的解释器的工作量,但缺点的话,很明显,并不像自然语言。。。

一开始看上去很简单

首先我们来看看Text.ParserCombinators.Parsec这一Package,它可以将一大段文字的每一行和每一个单词提取出来建成一个二维数组,这歌其实和

parse :: String -> [[String]]

parse x = map words $ lines x

这样的一段代码差不多,不过有一个区别就是Parsec里面的parse会把每一个空格也记录起来,这样我们家可以写出这样的一个函数将输入的内容分成每一个词:

wyFile = endBy line eol

line = sepBy cell (char ' ')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值