Reasoned Schemer (108) logo 続き7
logo
を使って足し算を定義する
(defrel (++o n m k) (logo k n '(1) m))
でいいんじゃね
> (run* k (++o '(1 1) '(1 0 1) k))
'((0 0 0 1))
続きを読む
Reasoned Schemer (107) logo 続き6
(fresh (q1 bwq1)
(+o q '(1) q1)
(*o bw q1 bwq1)
(<o nw1 bwq1))
bwq1 = bw * (q + 1)
b
の長さのq + 1
倍っていうのはb
のq + 1
乗の長さってことだな
nw1
をまだ計算してないのにとりあえず比較するというその順番にいまだなじまない
Reasoned Schemer (106) logo 続き5
(base-three-or-moreo n b q r)
はb
が3以上のときのn = b^q + r
の関係
この(今まで出てきた関係の中では)巨大な関係がしかもconde
で分かれてないってすごいな
全部同時に成り立つってことだもんな
Reasoned Schemer (105) logo 続き4
base-three-or-moreo
には恐れをなして先にlogo
本体
(defrel (logo n b q r)
(conde
((== '() q) (<=o n b) (+o r '(1) n))
n = b^q + r
の関係であること、とは(という読み方をしてみる)
筆の調子と今週の練習
切れ毛抜け毛でなんか穂先がやせてる気がしてずっと気になってたので
筆新調しました・象牀絃歌酒讌・蝉丸 - kb84tkhrのブログ
左が古いほう、右が新しいほう
根元あたりのふくらみぐあいに差があります
Reasoned Schemer (104) logo 続き3
b
の意味がどうもつかめてないんだよな
わかった
bはやっぱりbaseなんだ
exp2o
は2の累乗(とその仲間たち)を求めるんだけどそれはb
が()
のときで
b
が(1)
なら4の累乗、b
が(1 1)
なら8の累乗、b
が(1 1 1)
なら16の累乗って
考えたらいいんだ
つまり(2の(b
の長さ+1)乗)の累乗ってわけだな