kb84tkhrのブログ

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

Reasoned Schemer (92) 符号付き

符号付きの数を作ってそれ用の足し算を作る話 1周目に脳内で書いたコードはカッコの対応がついてないところだらけ あとdiff-sign-sumoで答えが0になるときの対応が抜けてることに気づいた

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)は追ってもあっさりしすぎててわからなさそうだから このへんで

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

Reasoned Schemer (73) conj2 続き

> (run* q (conj2 (== 'corn q) (== 'meal q))) '() これはどういう動きか ((conj2 (== 'corn q) (== 'meal q)) empty-s) = (append-map-inf (== 'meal q) ((== 'corn q) empty-s)) = (append-map-inf (== 'meal q) '(((#(q) . corn)))) = (append-inf ((== …

FlipKlip

今日はムスメとおでかけしてハンズに寄ったらこれが フリップクリップ ブックホルダー ブルー 14151 メディア: オフィス用品 前にどこかで絶賛コメントを見て、Amazonのレビューでも高評価なので気になってたやつ 本を見ながらコード入力したりするときは何…

圓潔銀燭煒煌 楷書だけ

今日はまず1文字ずつ練習してから書きましたといっても1文字を1枚に6回書いただけこれくらいはやったほうがいいんだろうなあとは思いつつも楷書だけでいつもの練習時間が過ぎてしまう

Reasoned Schemer (72) conj2

fuseされていなければ変数がdifferent 変数の名前が違うだけなら式の値は変わらない xがyの中に現れることをoccurという このあたりはOK conj2登場

Reasoned Schemer (71) ==をさらに

すこしだけ複雑なやつ > (run* q (fresh (x) (== `(((,q)) ,x) `(((,x)) pod)))) '(pod) とはいっても==を評価したstreamの要素がふたつになったくらい

Reasoned Schemer (70) fuseとか

> (run* q (fresh (x) (== x q))) '(_0) xとqがfuseしている というのは`(,x . ,q)というassociationがあるということ でもxもqもfreshなので_0

ペーパーライクフィルムを貼ってみた

Apple PencilといえどやっぱりiPadに直接書いているとやっぱりツルツル感がある字を書こうとすると書き始めが少し滑って筆跡が安定しない感じ 世の中にはペーパーライクな保護フィルムというのがあるらしいので試してみることにした