kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

Reasoned Schemer (93) 符号付き 続き

えーと
どうなってんの

> (check-sumo-augend -5 -5)
user break
> (check-sumo-augend 1 1)
user break
> (run* n (sumo n '(0 1) '(0 1)))
user break
> (run 1 n (sumo n '(0 1) '(0 1)))
'(())

なるほど
2個めを探しにいこうとして見つからないってことか

> (run 2 n (sumo n '(0 1) '(0 1)))
'(() (0))

ぶほ
へんなのでた

> (run 3 n (sumo n '(0 1) '(0 1)))
'(() (0) (1))

ちょちょちょっとまって

> (run 4 n (sumo n '(0 1) '(0 1)))
user break

とまった
ほっ
としてる場合じゃない
こういうコードはどうやってデバッグしたらいいんだ

じっと結果を見る
これは符号+0っていう数を作っちゃってるってことだなたぶん

ここか

    ((fresh (ns nn ms mn)
       (== `(,ns . ,nn) n)
       (== `(,ms . ,mn) m)
       (gen-sumo ns nn ms mn k)))))

nmが0の場合はここでは扱わなくてよかった
non overlapping property大事だな

    ((fresh (ns nn ms mn)
       (== `(,ns . ,nn) n)
       (== `(,ms . ,mn) m)
       (poso nn) (poso mn) ;ここ
       (gen-sumo ns nn ms mn k)))))

こうだろう

> (run 1 n (sumo n '(0 1) '(0 1)))
'(())
> (run 2 n (sumo n '(0 1) '(0 1)))
user break

ほら
ほらじゃない
なんで止まるのか考えないと