umajho / dicexp

Dicexp 是一种表示掷骰的表达式。本仓库代码用于对该表达式求值,并作为该表达式的事实标准。
https://umajho.github.io/dicexp/
MIT License
2 stars 0 forks source link

更换闭包语法 #33

Open umajho opened 2 months ago

umajho commented 2 months ago

现在的闭包语法 \($x, $y -> …) 要打的字符很多很杂(\(->)),有些过于繁琐,应该在保持解析方便的前提下改掉。

感觉可以改成 |$x, $y| …d100 |> map(|$x| $x*2))[^1],激进一些的话甚至可以考虑允许置于括号之外/省掉括号(map(d100) |$x| $x*2/d100 |> map |$x| $x*2)。 | 目前只用作 |> 的一部分,因此也不用考虑处理歧义,不会增加解析的复杂性。 dicexp 未来也不是很需要单独使用 | 的场景(如按位或,真需要的话定义一个 bor 关键词/通常函数就好),完全可以不引入其他单独使用 | 的功能。

[^1]: 源自 ruby(虽然 ruby 还会在外边套一层),也启发了 rust、nim 等等语言的语法(虽然语义不尽相同)。