Just use PyPI. Recommend to install cytoolz before installing Rem to speed up function invocations.
pip install remlangSee all features at Inrtoduction.
-
Pattern Matching
Currently supportcasesyntax.case expr as destruction [when condition] => statements end- Dictionary Pattern Matching
case %{a: b} as {a : &b+1} => 1 as {a : &b } => 2 end- Function Parameter Destruction
>> {|(1, 2, c)| c*2} (1, 2, 3) => 6 -
Inverted Syntax (see the priority table in the linked page)
file . open . write some_text.has a high priority whilethenhas a lower one. -
Into Statement(just like
goto)
Rem 支持中文编程, 因为它的tokenizer可以被动态操控,在任意一个Rem模块里,均有一个__compiler__对象, 负责处理输入语句到ast的转换。当下内置了一个无参函数中文编程, 便可以使用中文关键字。
>> call 中文编程
>> 对于 [3, 2] 作为 [甲, 乙] => 甲 * 乙 结束
# 等价于 =>
# case [3, 2] as [甲, 乙] => 甲 * 乙 end
=> 6
中英文token对照
| English | 中文 |
|---|---|
| then | 然后 |
| when | 当 |
| and | 并且 |
| or | 或者 |
| in | 含于 |
| not | 非 |
| case | 对于 |
| as | 作为 |
| end | 结束 |
| where | 其中 |
| from | 从 |
| import | 导入 |
| yield | 生成 |
| into | 跳跃到 |
| let | 使/让 |
| True | 真 |
| False | 假 |
| None | 空 |
| is | 是 |
. |
之 |
它 |
它 |
| = | 等于 |