kb84tkhrのブログ

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

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

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

Reasoned Schemer (69) 勘違い修正

いろいろ考え直さないとか? ↓みたいなのやっていくときはqをqのままにしないで書き替えてったほうがいいのかなー (run* q (== q 'pea)) = (run #f q (== q 'pea)) = (let ((q (var 'q))) (map (reify q) (run-goal #f (conj (== q 'pea))))) = ...

Reasoned Schemer (68) 勘違い

まだ理解したっていう手ごたえを感じてないんだけどどうするっていうアイデアもないので進める > (run* q succeed) '(_0) qはfresh 10章までsucceedって何かあんまり意識してなかったりもした

Reasoned Schemer (67) 関数整理

ひとつひとつの関数のお仕事をひとことで言えて やってみよう その前に用語のまとめ

今日の練習 圓潔銀燭煒煌

どうも感じがつかめないやっぱりどれかに集中して書き込むのがいいかなあ体で覚えるっていうかね頭で考えてるうちは全体のバランスまで気が回らないような気がするうまくなれば逆に考えながら書けるようにもなるかもしれない

Reasoned Schemer (66) (run* q fail)とか(run* q (== q 'pea)とか

さて読み返してみるとは言ったもののどうやっていくか せっかく実行できるようになったんだから式を実行してみるのはもちろんだけど デバッガーで追いかけたりしてみるかな DrRacketのデバッガー、いまひとつどう動いてるかよくわからなかったりする とりあ…

Reasoned Schemer (65) Forewordとか

ForewordとかPrefaceから読み返してみる そうだそういうことやってたんだ、という気分(忘れてる relationとgoalを理解して使えるようになる(第1章〜第8章) relationalでない演算子を使い、pureでないrelational programmingを行う(第9章) Schemeで関係型プ…

11インチ iPad Pro買いました

すこし贅沢できるお金が入ったので思い切って11インチ iPad Proを買いましたモトが取れるとか考えないで

Reasoned Schemer (64) 読み返し10章(続き3)

お次はこれ (let ((s-inf ((disj2 (nevero) (== 'olive x)) empty-s))) s-inf) = ((disj2 (nevero) (== 'olive x)) empty-s) = ((lambda (s) ((nevero) s) (append-inf ((== 'olive x) s))) empty-s) = (append-inf ((nevero) empty-s) ((== 'olive x) empty…

Reasoned Schemer (64) 読み返し10章(続き2)

次からappend-infが登場 うまく追っかけられるだろうか (let ((s-inf ((disj2 (== 'olive x) (nevero)) empty-s))) s-inf) = ((disj2 (== 'olive x) (nevero)) empty-s) = ((lambda (s) (append-inf ((== 'olive x) s) ((nevero) s))) empty-s) = (append-in…

Reasoned Schemer (64) 読み返し10章(続き)

まだイメージしきれないのは(append-inf s-inf t-if)で (lambda () (append-inf t-inf (s-inf)))するところかな たぶん↓とかもそういうところなんだよな (run 12 l (proper-membero'tofu l))の値の順番がなぜこうなるのか謎 append-infの続きあたりからもう…

週末何もする気が起きないという状況を初めて経験している

っていうほどひどい状態ではないんだけれども不慣れでストレス高めな仕事が続いていてMPが枯渇している感じあんまり頭使う気になれないというか Reasoned Schemerは考えてもわからなかったところをもう一度よく考えてみようみたいな局面を迎えていて取り組む…

Reasoned Schemer (64) 読み返し10章

ということで2周目に入るよ! いきなり始めに戻らずに10章を読み直している

Reasoned Schemer (63) conda, condu

conda (define-syntax conda (syntax-rules () ((conda (g0 g ...)) (conj g0 g ...)) ((conda (g0 g ...) ln ...) (ifte g0 (conj g ...) (conda ln ...))))) condeと違ってifteの入れ子にしないといけないから再帰な形になるってことか やってみる

Reasoned Schemer (62) fresh, conde

fresh (define-syntax fresh (syntax-rules () ((fresh () g ...) (conj g ...)) ((fresh (x0 x ...) g ...) (call/fresh 'x0 (lambda (x0) (fresh (x ...) g ...)))))) やってみる

Reasoned Schemer (61) run, run*

runとrun* (define-syntax run (syntax-rules () ((run n (x0 x ...) g ...) (run n q (fresh (x0 x ...) (== `(,x0 ,x ...) q) g ...))) ((run n q g ...) (let ((q (var 'q))) (map (reify q) (run-goal n (conj g ...))))))) (define-syntax run* (syntax…

12月のお題・圓潔銀燭煒煌

今月は圓潔銀燭煒煌あまり時間を取れなくてとりあえず書いてみたレベル 画の途中では、穂先を45度に向けたまま筆を運ぶ流儀と進行方向に向きを変えてから筆を運ぶ流儀がある感じ? それから圧力をかけて穂先をS字にするのを強調する流儀とそうでもない流儀が…