【问题标题】:MixHash working usefully - but need some clarificationsMixHash 有用 - 但需要一些澄清
【发布时间】:2020-07-25 20:38:50
【问题描述】:

这是对Does Baggy add (+) work on MixHash weights? 的(稍晚)跟进。 MixHash 是一个很好的单位比较工具 - 因为我知道我的 dmix => ("m"=>2,"kg"=>1,"s"=>-2).MixHash 对于 'kg m2 per s2' 和 'kg.m^2/s^2' 等等。

这是我寻求的三重清晰度:

  1. 我仍然需要将 MixHash (+) MixHash 的结果强制转换为 MixHash(默认结果是不可变的 Mix) - 一个或多个 MixHashen 上的操作结果是否仍然是 MixHash 的意图?李>
  2. 如果 MixHash (+) Any 潜入一个顽皮的不需要的元素的结果 dmix => ("m"=>2,"kg"=>1,"s"=>-2,"MixHash"=>1) - 这是一个错误,对。 [我已经通过将通缩默认设置为空集进行了修补... MixHash $.dmix is rw = ∅.MixHash;]
  3. 文档https://docs.raku.org/language/setbagmix 将 (+) 显示为 Baggy 添加,但 (-) 显示为 Set Difference。当我做 MixHash (-) MixHash 时,我似乎得到了 Baggy 减法——这就是我想要的。希望这是文档中的疏忽??

如果我可以提供代码或应该提交错误报告,请告诉我...

【问题讨论】:

    标签: raku units-of-measurement


    【解决方案1】:
    1. 是的,如果集合运算符的任一侧是可变版本,则结果也应该是可变版本。如果不是,那就是一个错误。

    2. Any 是一个值,尽管它是一个未定义的值。如此有效,右手边的行为就像是Any.MixHash(即(Any=>1).MixHash)。所以这不是一个错误。另外,您也可以说has %.dmix is MixHash

    3. 这确实是文档中的一个问题。并不是真正的疏忽,而是实际上未能更新,因为在较旧的集合运算符实现中,的行为。

    【讨论】:

    • 感谢您快速而全面的回复! (报告即将提交)
    猜你喜欢
    • 2021-01-01
    • 1970-01-01
    • 2013-08-06
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多