MixHash 有用——但需要一些说明
MixHash working usefully - but need some clarifications
这是对 的(稍晚)跟进。 MixHash 是单位比较的好工具——因为我知道我的 dmix => ("m"=>2,"kg"=>1,"s"=>-2).MixHash 是'kg m2 per s2' 和 'kg.m^2/s^2' 相同,依此类推。
这是我寻求的三重清晰度:
- 我仍然需要将 MixHash (+) MixHash 的结果强制转换为 MixHash(默认结果是一个不可变的 Mix)- 是否仍然打算将一个或多个 MixHashen 上的操作结果作为 MixHash?
- 结果if MixHash(+) Any偷偷混进了一个顽皮的不需要的元素dmix => ("m"=>2,"kg"=>1,"s"=>-2 ,"MixHash"=>1) - 这是一个错误,对吧。 [我已经通过将通缩默认值设置为空集来修补... MixHash $.dmix 是 rw = ∅.MixHash;]
- 文档 https://docs.raku.org/language/setbagmix 将 (+) 显示为 Baggy 添加,但将 (-) 显示为 Set Difference。当我执行 MixHash (-) MixHash 时,我似乎得到了 Baggy 减法——这正是我想要的。希望这是文档中的疏忽??
让我知道我是否可以提供代码或应该提交错误报告...
是的,如果集合运算符的任一侧是可变版本,那么结果也应该是可变版本。如果不是,那就是bug。
Any
是一个值,尽管它是一个未定义的值。如此有效,右侧就像 Any.MixHash
(即 (Any=>1).MixHash
)一样。所以这不是一个错误。另外,您也可以说 has %.dmix is MixHash
这确实是文档中的问题。不是真正的疏忽,而是更新失败,因为在集合运算符的旧实现中,是行为。
这是对
这是我寻求的三重清晰度:
- 我仍然需要将 MixHash (+) MixHash 的结果强制转换为 MixHash(默认结果是一个不可变的 Mix)- 是否仍然打算将一个或多个 MixHashen 上的操作结果作为 MixHash?
- 结果if MixHash(+) Any偷偷混进了一个顽皮的不需要的元素dmix => ("m"=>2,"kg"=>1,"s"=>-2 ,"MixHash"=>1) - 这是一个错误,对吧。 [我已经通过将通缩默认值设置为空集来修补... MixHash $.dmix 是 rw = ∅.MixHash;]
- 文档 https://docs.raku.org/language/setbagmix 将 (+) 显示为 Baggy 添加,但将 (-) 显示为 Set Difference。当我执行 MixHash (-) MixHash 时,我似乎得到了 Baggy 减法——这正是我想要的。希望这是文档中的疏忽??
让我知道我是否可以提供代码或应该提交错误报告...
是的,如果集合运算符的任一侧是可变版本,那么结果也应该是可变版本。如果不是,那就是bug。
Any
是一个值,尽管它是一个未定义的值。如此有效,右侧就像Any.MixHash
(即(Any=>1).MixHash
)一样。所以这不是一个错误。另外,您也可以说has %.dmix is MixHash
这确实是文档中的问题。不是真正的疏忽,而是更新失败,因为在集合运算符的旧实现中,是行为。