#language #experimental #interpreter

bin+lib mini-lang

一种最小化、实验性的惰性求值语言

3 个版本

0.1.2 2021年8月11日
0.1.1 2021年8月11日
0.1.0 2021年8月11日

#724编程语言

MIT 许可协议

24KB
588

迷你语言

一种最小化、实验性的惰性求值语言。

语法

以下是迷你语言的语法。(实际上,注释 // 不允许。)

数值字面量

print 42      // The integrer number
print -42     // Plus and Minus signs are allowed
print + 42   // and you can insert spaces between them.

操作

// Arithmetic
print 3 + 2    // 5
print 3 - 2    // 1
print 3 * 2    // 6
print 28 / 5   // 5 (floored)
print 28 % 5   // 3

// Comparison
print 2 > 1    // 1 (true)
print 1 > 1    // 0 (false)
print 2 >= 1   // 1
print 1 >= 1   // 1
print 2 < 1    // 0
print 1 < 1    // 0
print 2 <= 1   // 0
print 1 <= 1   // 1

// Equal, Not equal
print 2 == 1   // 0
print 1 == 1   // 1
print 2 != 1   // 1
print 1 != 1   // 0

// Conditional branch
print if 3 > 2 \   // 5
  then 5 \
  else 0 \

变量

let x = 5
let y = 3
print x + y   // 8

函数

// The simple add function
def add(x, y) = x + y

// Recursive function
def fibo(n) = \
  if n <= 2 \
    then n \
    else fibo(n-2) + fibo(n-1)

print add(3, 2)   // 5
print fibo(10)    // 55

API

此语言提供了 Rust 库接口,API 文档可通过 docs.rs 获取。

许可协议

Cross Clip 使用 MIT 许可协议。有关详细信息,请参阅 LICENSE

依赖关系

~0.3–1MB
~21K SLoC