perl6 – Baggy add()是否适用于MixHash权重?
我正在使用MixHash将两个Hashes与Bag add()运算符组合在一起.这似乎有效 – 但是…我有点惊讶的是,工会的结果需要重新强制回到MixHash.
我的猜测是Bag add()中缀操作符首先将所有内容强制转换为Bag并将结果作为Bag返回.这对我来说可能有风险,因为我的一些重量是负的(因此首先是混合).这会正确地增加负重吗? 或者,是否有Mix add()运算符? my MixHash $dim-mix; for ... { my $add-mix = $!dims.MixHash; $dim-mix = $dim-mix ?? ( $dim-mix (+) $add-mix ).MixHash !! $add-mix; } dd $dim-mix; 现在我看看这个释义代码,也许有一些三元的表述? !既然已经在左边了,可以避免在测试中拼出$dim-mix? 非常感谢任何建议! 解决方法my $add-mix = (foo => 0.22,bar => -0.1).Mix; my $dim-mix; for ^5 { $dim-mix (+)= $add-mix; } dd $dim-mix; # Mix $dim-mix = ("foo"=>1.1,"bar"=>-0.5).Mix 显然我没有使用过MixHash,但如果需要在循环之后你可以对它进行排序. (当然你可能会想“但不是混合不可变?”它是 – 但你必须区分变量和值.$dim-mix是一个变量,一个标量变量.即使你输入它 – 我的Mix $dim-mix;它仍然是一个包含Mix值的Scalar变量.你总是可以分配一个Scalar.) 我开始习惯这样的问题,我不知道发生了什么,但我认为我应该能够弄清楚.这是我的过程: >我让你的代码运行,看看它做了什么.我试图简化三元组.嗯. 如果确实需要,可以添加一些类型. (但你真的需要它们吗?当类型是绝对必要的时候它们是伟大的.否则,imo,三思而后,再两次,然后再介绍它们.它们很容易使代码更难阅读,推理,撰写和更慢.) (当然,在某些情况下,它们并不是绝对必要的,但确实对整体有所帮助.Imo,就像所有事情一样,一开始就保持简单,只有当你看到特定代码行的明显好处时才会复杂化.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |