1 个 不稳定版本
0.1.0 | 2022年8月4日 |
---|
#866 在 编程语言 中
43KB
898 行
Rei
一 个 即用即装的编程语言。
表达式
Rei 由一系列有组织的表达式组成。
函数、类、数据、特质定义总是唯一的且位置无关。这意味着你可以在其他所有内容下方定义一个函数,但它仍然对所有上方的内容可见。它们也不能被阴影化,如果你尝试重新定义一个函数、类等,你会得到一个重复错误。
这不同于变量定义表达式。变量使用 vardef 关键字定义,let, mut, const, static
类似于 Rust 和 v。但变量可以在同一个作用域中被阴影化和重新定义。
一切皆表达式
技术上,一切皆表达式。一个表达式计算出一个值。"语句" 是一种特殊的表达式,其计算结果为 ()
。但在 rei 中,我们不区分 "语句" 和 "表达式"。相反,未分配给变量或未在作用域结束时返回的表达式 simply 被丢弃。
从这个意义上说,rei 可以被视为一种面向数据、函数式编程语言。它提供了面向对象编程、模板和元编程的选项。Rei 的目的是给你最大的自由度来高效处理数据并快速编写逻辑。先写起来,优化之后再说。尽管编译器在处理空值和借用规则方面非常 "严格",就像 rustc 一样。
一个例子
fn get_data() -> uint {
// expression evaluates to (), since mut var definition expr
mut x = 1
// expression evaluates to (), since scoped if expr
for i in 0..10 {
// expression evaluates to (), since ident ~ operator
x++
}
// expression evaluates to x (identifier)
// IDE parse warning: ditched non-trivial expr return
x
// expression evaluates to x (identifier)
x
}
Reidoc
你可以在可哈希位置使用哈希注释。像 Rust 一样,在文件开头、函数表达式之前以及其他 "非平凡"、"导出" 块之前。不包括未导出的局部表达式。如果变量定义是导出的,它也可以有哈希注释。
依赖项
~6.5MB
~98K SLoC