1 个不稳定版本
0.1.0 | 2022年4月13日 |
---|
#480 在 编程语言 中
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