私はいくつかのQuil examplesを見ている、と(「ハイパー」と「均衡」の例のための)2人の異なる著者が使用していることに気づいたために対単純なの機能更新で非ネストされた構造
(update s :x + dx vx)
これには理由がありますか? s
が深くネストされた構造だった場合、それは理にかなっています。どちらの場合もかかわらず、キーのリストは、私だけにして、上記2つのスニペットが同等に見える、1件のエントリーがあります。そのupdate-in
除き
(let [dx 1
vx 2
s {:x 5}]
(println (update-in s [:x] + dx vx))
(println (update s :x + dx vx)))
{:x 8}
{:x 8}
はおそらく、もう少しのオーバーヘッドを持っています。
私が考えることができる唯一の理由は、将来彼らが状態を入れ子にすると、移行が楽になるということだけです。しかし、このような単純な例では、これは起こりそうもなく、特にどこにでも魔法の定数があることを考えると、
update-in
をupdate
以上にネストされていない使用する理由はありますか?
(a)ここでは、ディソクが関連性があるのはなぜですか? (b)あなた自身の図書館を使用することを提案する場合は、それが自分のものであることを明確に示してください。 – amalloy