1 个不稳定版本

0.1.0 2022年4月13日

#480编程语言

MIT 许可证

68KB
1.5K SLoC

Leuchtkraft

Leuchtkraft 是我极简依赖的声明式编程语言。一个基本的 Leuchtkraft 程序可能看起来像这样

// Logic Clauses
forall X
    bird(X) and healthy(X) => canfly(X) // Healthy birds can fly
    canfly(X) => healthy(X)             // Things that fly are healthy
    wounded(X) and healthy(X) => false  // Things can't both be healthy and wounded

// Facts
true => bird(john) and bird(mary) and bird(jane) // john, mary and jane are birds
true => wounded(john) // john is wounded
true => healthy(jane) // jane is healthy

// Conclusions
X? => canfly(john) => X? // False (john is not a healthy bird)
Y? => canfly(mary) => Y? // Indeterminate (mary's health is unknown)
Z? => canfly(jane) => Z? // True (jane is a healthy bird)

查看 我的博客文章 了解如何使用 Leuchtkraft 的更多信息。

安装

从 crates.io

cargo install leuchtkraft

从源代码

git clone https://github.com/Wuelle/Leuchtkraft
cd Leuchtkraft
cargo install --path .

执行 leuchtkraft --help 以获取基本用法信息。

路线图

按优先级排序

  • 自定义零克隆解析器
  • 逻辑解析器
  • 出色的构建警告/错误
  • 用于测试的 WASM 应用程序
  • REPL
  • 变量级未知数 (canfly(X?))
  • 编译器和(如果觉得非常酷)JIT

语法高亮

我只包括 vim 脚本,因为如果你不使用 vim,你真的算得上是一个程序员吗?

将高亮脚本 (le.vim) 复制到 ~/.vim/syntax/le.vim。然后创建 ~/.vim/ftdetect/le.vim 并写入 au BufRead,BufNewFile *.le set filetype=le 以将 .le 文件与 leuchtkraft 脚本关联。

依赖关系

~0–7MB
~39K SLoC