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))
ほら
って思ったけど
conde
、==
、<o
と/o
だけを使って足し算を定義しなさい
conde
使わないといけないのか
そうか場合分けはいるな
いるか?
n
が0でも1でも大丈夫だし
> (run* k (++o '() '(1 0 1) k))
'((1 0 1))
> (run* k (++o '(1) '(1 0 1) k))
'((0 1 1))
そういう話じゃないか
n+5=3
の n
を求めなさいみたいなのを避けるってことかな
> (run* n (++o n '(1 0 1) '(1 1)))
'()
できてるじゃん
えー何しなきゃいけないの