Open umajho opened 1 year ago
if($cond, do: d10, else: d20)
)后,函数文档需要区分基于位置的参数的名称与显式参数的名称:前者用小括号括起来,后者不用。此外,代码中原先用 label
来表示名称,为防止歧义应作修改。再更新一波,越往下记录得越早。
完成这些后就暂时不碰本库了:
^/2
视为 **/2
。reroll/2
、explode/2
,以及后加的 shuffle/1
等)。目前发现且要修复的 bug(没有长期记录价值,修好后直接把这里删掉。):
a.()
错误信息显示了两遍。(低优先级)@dicexp/solid-components
改名为 @dicexp/web-components
。>=
之类显示成 ≥
这种?(解析时也应该支持这些。)dicexp
和 @dicexp/builtins
相互依赖的问题如何解决?
dicexp
中,以去掉前者对后者的依赖?README.md
信息过时了,还没更新。foo:
这样” 改为 “类似 0 (foo):
这样”,以为未来的 “关键词列表类” 参数铺路。由于准备将目前 “基于树遍历的解释器” 重写为 “基于字节码的虚拟机”,针对前者实现层面的改进将无限期推迟。 不过由于重写也不会是近期就要完成的事情,实质上本项目一段时间内大概不会有任何能立刻看到成效的改进了。
计数方式可以为:
rojo 对此的处理: 在后端进行的 dicexp 求值会记录最终结果以及可以用于重建运算的信息(包括各类版本及种子等)。 当计数超过设定好的阈值时,后端不会记录运算步骤,用户在前端只会收到最终结果及用于重建运算的信息。如果这时用户需要获知运算步骤,会在浏览器中根据上述信息重建它。
Items
组件应该切开必定显示的前几项元素与剩余的元素,用 ShowKeepAlive
调整后者是否显示,以保持后者中元素的状态。parseLevel: true
,以便让不存在对应定义的 “函数”(比如 #
)也能有文档。canCapture: false
,文档中会提示该函数不能被捕获。本来预计的阶段性收尾工作是:
目前只是完成了第一项中的一部分(尚未并入 main 分枝)。 感觉有些燃尽了,想要做些其他事情换换气,所以即使是阶段性的收尾工作,也打算先搁置了。
[^1]: 还有和其他工具配合的 eslint-config-turbo、eslint-config-prettier。
打算在清扫完实现
reroll
、explode
的阻碍后将重心移到 rotext 或其他地方,待到能将 rotext 与 dicexp 整合时再继续完成剩下的工作。以下是一些记在笔记中,但没有单独开 issues 的想法:
一般
.
[1, 2, 3].(0)
=>1
[foo: 42].foo
=>42
[foo: [bar: 42]].foo.bar
=>42
.
相区分?隐式转换?2 * 3
这样的常量。#
右侧、不在闭包内)的随机取值操作提前求出。d%
?Playground
[x] 批量结果的 Bar chart
但考虑到需要定制一些功能(分布、至少、至多光标悬浮同时高亮,同时显示数量和百分比,可能性过多时合并结果…),打算未来用
d3.js
手动实现。[ ] “快速上手” 指南
分以下几对:
1~10
--~
3d(4+5*6)
--+
、-
、*
、//
(整除)、%
(正数求余)、^
(幂)、d
、(
、)
3#d10
--#
reroll(3d10, \(x -> x <= 2))
==3d10 |> reroll \(x -> x <= 2)
--reroll
、explode
、闭包、(布尔值?)、|>
通常函数
identity/1
或id/1
。(还没确定好用哪个。)shuffle/1
。限制
步骤展现
null
代表不能去掉括号),以让同优先级的运算内外去掉括号。解析
/
,给一个解析错误,像是 “dicexp 仅支持整除,是否想用 “//” 整除运算符?”。杂项
callValue
里对左侧值的concretize
是不是该放在_yield
里?+1
总计 5 步,为什么?'a'~'z'
,但目前不打算引入字符串。还可以拓展到范围运算符。