Janet 是一个命令式与函数式编程语言,同时也是一个字节码解释器,它是一个现代的 Lisp,但是列表替换为其它数据结构,包括数组、表、结构与元组,具有更好的实用性和性能。
该语言还支持桥接到用 C 编写的原生代码、宏元编程和字节码汇编。
Janet 还提供了 REPL 环境,以及运行脚本文件的能力。Janet 客户端程序与核心运行时分开,因此可以嵌入到其它程序中。
具体特性:
- 精简
- 一级闭包
- GC
- 一级绿色线程
- Python 样式生成器(以普通宏的形式实现)
- 提供可变与不可变的数组,即 array 与 tuple
- 提供可变与不可变的哈希表,即 table 与 struct
- 提供可变与不可变的字符串,即 buffer 与 string
- Lisp 宏
- 带有汇编接口的字节码解释器,以及字节码校验
- 尾调用优化
- 通过抽象类型和 C 函数直接与 C 互操作
- 动态加载 C 库
- 函数式和命令式标准库
- Lexical 作用域
- 命令式与函数式编程
- REPL
- 解析表达式语法内置于核心库
- 核心库中有 300 多个函数和宏
- 可将 Janet 嵌入其它程序
- 具有详细堆栈跟踪的交互式环境
文献资料