Reasoned Schemer (18) adderoまとめ
表にしてみた
行 | b | n | m | r | overlap | 計算 |
---|---|---|---|---|---|---|
1 | =0 | =0 | 6(n=1 m=0) 8(n=2 m=0) | (== n r) |
||
2 | =0 | =0 | >0 | -- | (== m r) |
|
3 | =1 | =0 | 6(n=1 m=0) 8(n=2 m=0) | (addero 0 n '(1) r) |
||
4 | =1 | =0 | >0 | -- | (addero 0 '(1) m r) |
|
5 | =1 | =1 | 6(n=1 m=1) | (full-addero b 1 1 a c) |
||
6 | =1 | 1 3 5 | (gen-addero b n m r) |
|||
7 | >1 | =1 | >1 | 8(n=2 m=1) | (addero b '(1) n r) |
|
8 | >1 | 1 3 7 | (gen-addero b n m r) |
1〜4行目で0が出現する場合、5〜7行目で1が出現する場合、8行目でその他の場合をカバーしてる
ところどころ non-overlapping にしようとしてるように見えたけど
全体的には overlapp のことは気にしてない感じかな
どういうポリシーなんだろう
条件つけてないとちゃんと動かない部分をガードしてるだけかな?
overlapしないようにするっていうのはそこまで絶対守るべきものではないのかな
掟とか戒律とかにはなってないし
重複してると同じ結果が複数回出てくることがある(んだよな?)程度の話、ってこと?
あと7行目のrの条件は何をガードしているの
これがないとどんな答えが出るの