# rethink **Repository Path**: langhat/rethink ## Basic Information - **Project Name**: rethink - **Description**: 逻辑型语言,旨在提供一个更好的逻辑型开发体验 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-15 - **Last Updated**: 2025-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Rethink: 极简语法的开源逻辑型语言(Beta 版) 定位:一款以「无括号谓词 + 直观规则」为核心的开源逻辑型编程语言,旨在降低逻辑编程学习门槛,适配轻量级逻辑推理场景(Beta 阶段,持续迭代中)。 ## 🌟 项目介绍 Rethink 是为解决传统逻辑型语言(如 Prolog)语法复杂、学习成本高的痛点而生的开源项目。我们采用「极简谓词句型」设计,无需冗余括号与符号,让开发者通过「描述逻辑关系」即可实现程序推导,目前处于 Beta 阶段,核心功能已可测试,欢迎社区参与共建。 核心目标:让逻辑编程「简单化、轻量化、可扩展」 Beta 版状态:支持基础事实定义、规则推导、查询与子系统语法框架,部分功能(如子系统计算)待完善 适用场景:简单规则验证、小型知识问答、模块化逻辑封装(暂不适合生产环境) ## ✨ 核心特性(Beta 版支持) 1. 无括号谓词:极简事实定义 无需括号与分隔符,通过「连续谓词」直接描述事实,顺序即逻辑关系: 2. 直观规则:by 关联条件与结论 用 by 清晰定义「条件→结论」的逻辑推导关系,无需复杂语法: 3. 灵活查询:ask/if 快速验证 用 ask 或 if 触发逻辑查询,直接获取推导结果(true/false 或具体匹配值): 4. 变量机制:大写字母 /$ 开头标识 支持变量替换,灵活匹配通用逻辑模式: 变量规则:大写字母(如 X)或 $ 开头(如 $Name) 示例:Person$Name$Age 可匹配任意「人名 + 年龄」的事实 5. 子系统扩展:sub/use 模块化封装 预留模块化语法框架,支持封装复杂逻辑为子系统(Beta 版仅语法,计算功能待完善): ### 示例:定义「加法子系统」+ 调用 sub MathAdd a b arg a+b bus # 子系统 MathAdd:计算 a+b use MathAdd 2 3 esu # 调用子系统,预期结果:5(暂未实现) ## 🚀 快速开始 1. 环境要求 无其他第三方依赖 2. 安装步骤(Beta 版) 需自行编译(使用g++等) 查看结果: 解释器将输出 true,表示推导成立。 📖 完整语法文档(Beta 版) 1. 基础句型:事实定义 语法格式 说明 示例 [谓词1][谓词2]...[谓词n] 无括号连续谓词,描述具体事实 2. 规则定义:by 语法 语法结构 说明 示例 [结论句型] by [条件句型1] [条件句型2] ... by 左侧为结论,右侧为多个条件(空格分隔) 3. 查询指令:ask/if 语法格式 说明 示例 ask [句型] 验证句型是否成立,返回 true/false,或其他 if [句型] 与 ask 功能一致 4. 子系统:sub/use(Beta 版框架) 语法格式 说明 示例 sub [子系统名] [参数1]... arg [计算逻辑] bus 定义子系统,arg 后为逻辑(暂不支持计算) sub MathAdd add.exe A B arg A B bus use [子系统名] [参数1]... esu 调用子系统,esu 为结束标识 use MathAdd 2 3 esu ## 📌 Beta 版限制与待完善 目前 Rethink 处于开发阶段,存在以下限制,欢迎社区反馈优化: 功能未全:子系统 sub/use 仅支持语法框架,未实现实际计算逻辑; 性能局限:复杂规则(多条件嵌套)或大数据量推导可能出现效率问题; 生态缺失:暂无 IDE 插件、调试工具,仅支持命令行测试; 稳定性:可能存在推导逻辑 Bug(如变量匹配异常)。 ## 🚀 一些补充 `ls`命令可以列出所有真命题,`exit`命令用于退出repl,`erase`用于删除一个真命题,`mode`切换模式(full,vars,plain) ## 🤝 贡献指南 Rethink 是开源项目,非常欢迎开发者参与共建!以下是主要贡献方向: 1. 反馈与测试 测试核心语法(事实、规则、查询)的易用性,提交「语法优化建议」; 发现推导 Bug(如预期结果与实际不符),在 Gitee Issues 提交复现步骤: 提交 Issues 2. 代码贡献 Fork 本仓库; 创建分支:git checkout -b feature/[功能名](如 feature/subsystem-calc); 提交代码:git commit -m "完善子系统计算功能"; 发起 PR,描述修改内容,等待审核。 3. 文档完善 补充更多语法示例(如多条件规则、变量嵌套); 优化快速开始教程,降低新手入门门槛。 ## 📄 许可证 本项目采用 MIT 许可证,开源免费,可用于个人 / 商业非生产场景(Beta 版),详见 LICENSE 文件。 ## 📞 联系与反馈 Gitee 仓库:https://gitee.com/langhat/rethink