Ni 是基于 Smalltalk,使用 Nim 编写的编程语言,同时也参考了 REBOL, Forth, Lisp, self 和 Nim 语言的特性。Ni 有点特别,但不是学术性的,而是非常有用的一门语言。
Smalltalk 主要特性:
闭包和非本地返回控制结构
集合简单和快速操作
易读的关键字语法,所有都是表达式
Ni 语言现在已经实现了一些基础的特性,比如闭包和非本地返回。
Ni 包含两个模块:解析器 (500 loc) 和解释器(750 loc)。解析器生成 AST,也是 Ni 内部数据的展示。解释器解析 AST。Ni 使用 Nim 编写,所以可以在任意支持 C 的基础平台上运行。
Ni 相当于一个 Nim 的 AST 解析器 Rebol-ish 语言实现。
代码示例:
block = [1 2 3] # Lets loop over it manually using the Internal position block reset # Set position back to 0 [block end?] # We call an infix Function called "end?" with block as argument whileFalse: # We call an infix function called "whileFalse:" taking two blocks [Echo (block next)] # We call an infix function called "next" to get next element and echo it