kb84tkhrのブログ

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

2020-01-01から1ヶ月間の記事一覧

Reasoned Schemer (91) addero, +o, -o, lengtho

adderoとgen-addero genとはなんだろう

晝眠夕寐藍筍

楷書 いつもより字を小さめに書いて余白を作ってみようとしてみたこれでもかなり小さく書こうとしたんだけど難しい 1文字の中でバランスを取るのも難しいというのにこれは持って生まれた何かの問題かもしれんねしらんけど

Reasoned Schemer (90) half-adder, full-adder, poso, >1oあたりまで

7. A Bit Too Much ビット演算から加算器作ったりする話 というか数を作る話と言った方がいいのかな

Reasoned Schemer (89) リベンジ?

delayしてるところがわかんねえ、って言ってスルーしてきたとこ、今ならわからないかなあ どういう順で答えが出てくるとか、何回forceすると答えが出てくるとか

Reasoned Schemer (88) nevero 続き2

> (run 1 q (conde (succeed) ((nevero))) fail) これが止まるのはだいたいイメージできるけど練習でやってみよう

Reasoned Schemer (87) nevero 続き

後者は1回forceした後同じになるのかな このへん、勘でもREPL頼りでもなくちゃんとわかって言えないものだろうか 一度は追ってみないとダメかなあ

Reasoned Schemer (86) nevero

今回のネタはこれ (defrel (nevero) (nevero)) 単純極まりない でも1周目では腑に落ちないところがいくつかあった

Reasoned Schemer (85) alwayso

6. The Fun Never Ends … この章(も)、1周目は消化不良気味だったけど今回はどうだろう (defrel (alwayso) (conde (succeed) ((alwayso)))) とりあえず一回succeedしてさらにもう一度 ということはすんなりわかるようになった

Reasoned Schemer (83) appendo 続き2

でも! appendoの再帰を最後に持ってくると終わるんだって

Reasoned Schemer (82) appendo

appendoはoutに結果をunifyするだけだから動き的に新しいところはない、かな? (defrel (appendo l t out) (conde ((nullo l) (== t out)) ((fresh (a d res) (conso a d l) (appendo d t res) (conso a res out))))) たとえば

Reasoned Schemer (81) Chapter 3 残り

defrelもわかったことにするとだいたいわかった感じになるかなあ > (run 5 x (lolo `((a b) (c d) . ,x))) '(() (()) ((_0)) (() ()) ((_0 _1))) こういうのもまじめに追いかければなぜこの順になるかわかるはずだけどそこまで元気は出ない defrelのlambda (…

Reasoned Schemer (80) delrel再考

ところで(run 1 x (listo ``(a b c . ,x)))はdefrelにlambda ()がないと帰ってこない やっとlambda ()の存在意義を確認

今月のお題 晝眠夕寐藍筍

2020年になりましたが書道教室はいつものペース いろいろ思うところはあるけど初日だとこんなものかな楷書は画数が多くてバランスが取るのが難しい(いつもどおり)右上がりがコントロールできてない

Reasoned Schemer (80) listo

3. Seeing Old Friends in New Ways Translationの続きだけどTranslationよりも再帰が出てきたことに注目して (defrel (listo l) (conde ((nullo l)) ((fresh (d) (cdro l d) (listo d))))) > (run* x (listo `(a b ,x d))) '(_0) 1周目はTranslationすると…

Reasoned Schemer (79) Translationとか

さらっといく nulloとpairo

Reasoned Schemer (78) caro、cdro、conso

リストの操作 まずはcaro > (defrel (caro p a) (fresh (d) (== (cons a d) p))) > (run* q (caro '(a c o r n) q)) '(a) なんでconsが理解できるんだろうと思ってたけどunifyとかがリストを前提とした作りになってるからだな ていうかむしろリストしか知ら…

Reasoned Schemer (77) defrel 続きとconde

> (run* (x y) (teacupo x) (teacupo y)) '((tea tea) (tea cup) (cup tea) (cup cup)) こうやって組み合わせで増えていくのがrelationalっぽいような気がする

Reasoned Schemer (76) defrel

defrel登場 > (defrel (teacupo t) (disj2 (== 'tea t) (== 'cup t))) > (run* x (teacupo x)) '(tea cup)

Reasoned Schemer (75) fresh、run*

こういう式を短く書く話 (run* r (fresh (x) (fresh (y) (conj2 (== 'split x) (conj2 (== 'pea y) (== `(,x ,y) r)))))) (fresh (x) (fresh (y) g ...)は(fresh (x y) g ...)と書ける (run* r (fresh (x y) (conj2 (== 'split x) (conj2 (== 'pea y) (== `(…

書き初め

ムスメのお題をもらって書き初め

Reasoned Schemer (74) disj2

disj2のほうがconj2よりもイメージしやすい気がする ちょっと加速しよう ((disj2 fail fail) empty-s)は追ってもあっさりしすぎててわからなさそうだから このへんで

あけましておめでとうございます