关于服务
翻译我在 Mercury 中开发程序——一种纯粹的声明式语言,将逻辑和函数式编程结合在一个严格的静态类型系统、模式分析和确定性检查下。如果您的领域充满了必须一致的规则、约束和解决方案,我将这些规则转化为代码,其诚实性由编译器本身保证。Mercury 不是化妆过的 Prolog,也不是逻辑面具下的 Haskell:类型推断、模式和确定性分析在第一次测试运行之前捕捉到整类错误,这正是规则繁重、以验证为重点的系统所需要的。
在实践中,我用具有明确模式的谓词和函数对您的领域进行建模,因此数据流、失败和非确定性是声明和检查的,而不是隐含的。我设计确定性核心,在正确性至关重要的地方,留下非确定性搜索在任务真正分支的地方,并使用 Mercury 的模块系统使大型规则库在多年内保持可读和可维护。我关心干净的接口、详尽的案例分析和全函数——在声明式语言中,这些属性使您能够推理行为,而不是猜测。
我可以从规范开始一个项目,拯救一个复杂的现有 Mercury 代码库,或构建一个紧凑的规则引擎、分析器或其他服务调用的转换工具。我记录每个模块的逻辑,围绕编译器无法证明的内容编写有意义的测试,并交付未来的维护者能够真正理解的代码。
—— 按规范编写的 Mercury 程序:谓词、函数、显式模式
—— 适用于受监管领域的规则引擎和声明式决策逻辑
—— 一致代码的类型、模式和确定性设计
—— 复杂现有 Mercury 项目的重构和拯救
—— 基于逻辑-函数的分析器、转换器和 DSL
—— Mercury 核心与周围服务和工具的集成
在实践中,我用具有明确模式的谓词和函数对您的领域进行建模,因此数据流、失败和非确定性是声明和检查的,而不是隐含的。我设计确定性核心,在正确性至关重要的地方,留下非确定性搜索在任务真正分支的地方,并使用 Mercury 的模块系统使大型规则库在多年内保持可读和可维护。我关心干净的接口、详尽的案例分析和全函数——在声明式语言中,这些属性使您能够推理行为,而不是猜测。
我可以从规范开始一个项目,拯救一个复杂的现有 Mercury 代码库,或构建一个紧凑的规则引擎、分析器或其他服务调用的转换工具。我记录每个模块的逻辑,围绕编译器无法证明的内容编写有意义的测试,并交付未来的维护者能够真正理解的代码。
—— 按规范编写的 Mercury 程序:谓词、函数、显式模式
—— 适用于受监管领域的规则引擎和声明式决策逻辑
—— 一致代码的类型、模式和确定性设计
—— 复杂现有 Mercury 项目的重构和拯救
—— 基于逻辑-函数的分析器、转换器和 DSL
—— Mercury 核心与周围服务和工具的集成