【文言心】- 中文编程语言
一门追求同像性(Homoiconicity)的中文编程语言,代码即数据,数据即代码。
repo:zhongwen:基于Lisp的中文编程语言项目 - AtomGit | GitCode
🌟 特性
- 中文语法 - 使用中文动词和标点,符合中文思维习惯
- 同像性 - 支持Quote/Eval,代码可作为数据操作
- 管道操作 - 使用中文逗号
,连接操作,流畅表达数据流 - 高阶函数 - 内置
皆(map)、只(filter)、归(reduce) - REPL环境 - 交互式开发体验
- 错误友好 - 精确的错误定位和友好的建议
🚀 快速开始
安装依赖
# 安装SBCL(Steel Bank Common Lisp)
# Windows: 下载安装包 https://www.sbcl.org/
# Linux: sudo apt-get install sbcl
# macOS: brew install sbcl
运行REPL
python repl.py
Hello World
印"Hello World"。
第一个程序
# 基本运算
1加2。 # → 3
# 管道操作
10加5,乘2。 # → 30
# 列表操作
列1 2 3,皆乘2。 # → (2 4 6)
📖 语法说明
基本运算
1加2。 # 加法 → 3
5减3。 # 减法 → 2
3乘4。 # 乘法 → 12
10除2。 # 除法 → 5
模10 3。 # 取模 → 1
管道操作
使用中文逗号,连接多个操作:
10加5,乘2,除3。 # → 10
列表
列1 2 3。 # 创建列表 → (1 2 3)
列1 2 3,首。 # 首元素 → 1
列1 2 3,余。 # 余元素 → (2 3)
入1列1 2 3。 # 索引取值 → 2
高阶函数
列1 2 3,皆乘2。 # 映射 → (2 4 6)
列1 2 3 4 5,只大3。 # 过滤 → (4 5)
列1 2 3,归加0。 # 归约 → 6
变量定义
定x为10。
x乘2。 # → 20
条件表达式
若1则2否则3。 # → 2
同像性(Quote/Eval)
"1加2"。 # Quote(中文引号)→ (1 加 2)
行"1加2"。 # Eval → 3
# 也支持波浪号+中文引号
~"1加2"。 # Quote → (1 加 2)
字符串
"Hello World"。 # 字符串字面量
长度"Hello"。 # 长度 → 5
连接"Hello""World"。 # 连接 → "HelloWorld"
印"Hello"。 # 打印
注释
# 这是注释
注:这也是注释
1加2。 # 行尾注释
🎯 示例
计算阶乘
# 计算5的阶乘
列1 2 3 4 5,归乘1。 # → 120
判断奇偶
# 判断7是否为奇数
模7 2。 # → 1 (奇数)
列表求和
# 计算1到10的和
列1 2 3 4 5 6 7 8 9 10,归加0。 # → 55
📚 文档
🛠️ 开发
项目结构
newlisp/
├── repl.py # REPL交互环境
├── wenyanxin/
│ └── errors.py # 错误处理
├── examples/ # 示例代码
├── design.md # 设计文档
├── tech.md # 技术需求
└── README.md # 本文件
运行测试
python test_comments.py # 注释测试
python test_strings_complete.py # 字符串测试
python test_builtin_functions.py # 内置函数测试
📊 功能进度
- ✅ v0.1: 基本运算与管道
- ✅ v0.2: 列表与高阶函数
- ✅ v0.3: 变量与控制流
- ✅ v0.4: 同像性(Quote/Eval)
- ✅ 注释支持
- ✅ 字符串支持
- ✅ 内置函数(首、余、入、模)
- ✅ 错误处理系统
- ✅ REPL交互环境
🤝 贡献
欢迎贡献代码、报告问题或提出建议!
📄 许可证
MIT License
🙏 致谢
- 灵感来源于Lisp的同像性
- 底层运行时使用SBCL
- 开发语言使用Python
【文言心】- 让编程更符合中文思维! 🎉