3 个不稳定版本
0.2.0 | 2022年4月11日 |
---|---|
0.1.1 | 2020年9月8日 |
0.1.0 | 2020年8月24日 |
#1237 在 Rust 模式
15KB
344 行
Brain Flak 宏
在 rust 中编写 Brain-Flak 代码。您可以传递一个向量作为输入。`brain_flak` 宏将展开为堆栈操作。
use brain_flak_macro::brain_flak;
let mut vec: Vec<i32> = vec![20, 5];
brain_flak! { &mut vec =>
// multiplication
([({}<([({}(<()>))<>](<()>))<>>)<>]){({}[()]<(({})<({}{})>)>)<>}{}{}<>{}{}{}<>
}
assert_eq!(vec![100], vec);
原因
我本来要创建 brainfuck 宏,但它已经存在。某个 Discord 服务器的一个随机人建议使用 Brain-Flak。使用平衡括号的选择使其足够容易,只需使用 macro_rules
(不是)。
lib.rs
:
使用 Brain-Flak 进行堆栈操作。
use brain_flak_macro::brain_flak;
let mut vec = vec![20, 5];
brain_flak! { &mut vec =>
// multiplication
([({}<([({}(<()>))<>](<()>))<>>)<>]){({}[()]<(({})<({}{})>)>)<>}{}{}<>{}{}{}<>
}
assert_eq!(vec![100], vec);