kb84tkhrのブログ

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

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字にするのを強調する流儀とそうでもない流儀が…

Reasoned Schemer (60) disj, conj, defrel

Connecting the Wires いちいち(let ... (map ... (call/fresh ... (disj2 ... (disj2 ...)))))などとは 書いていられないのでマクロ書くよ!という章 まずdisj2のいくつでもゴールを取れる版disj実際にはcondeが使われるので補助的な位置

Reasoned Schemer (59) 10章 once

こんどはonce これはconduのもとになってるはず

Reasoned Schemer (58) 10章 ifte もう少し

if-then-elseとconda、なんとなくつながりがありそうな気はするんだけど どうなるんだ? condaの式をifteで書けるはずなんだよな (conda (#s #u) (#s #s))を書き直してみよう

小さな習慣維持のためだけの記事

PC触るのは10時まで、とゆるめに決めているんだけれども(しょっちゅう破る)最近帰りが遅い日が増えて今日は帰った時点で10時過ぎ書くのやめておこうかなあと思ったけど寝る前に思い出して腕立て伏せ1回でも習慣継続、っていうのを思い出してちょっとだけ書…

Reasoned Schemer (58) 10章 ifte

興奮するのもいいけど、なにか忘れてませんか? condaとconduはどうしたっけ そうですね ifteってのを定義します IF-Then-Elseの略

Reasoned Schemer (57) 10章 appendoふたたび

Let’s put the pieces together! piecesをtogetherすると完成? appendoをこの章で定義した関数だけで書く

今日の練習

侍巾帷房紈扇 楷書すこし左払いのコントロールを取り戻せたかもしれない穂先の先まで指のつもりで神経を通す(気持ちだけ)すこーし筆を左にひねるようにしながら払うときれいにまとまる気がしたけど正しいやり方かどうかはよくわからないたぶん正しくない

Reasoned Schemer (56) 10章 reify-s, reify, run-goal

reifyするっぽい何か

『関数型プログラミングに目覚めた!』読んだ

いつぞや某プログラミング情報サイトで物議をかもしてた人の物議をかもしてた本 関数型プログラミングに目覚めた!IQ145の女子高校生の先輩から受けた特訓5日間 作者: 岡部健 出版社/メーカー: 秀和システム 発売日: 2015/04/22 メディア: 単行本 この商品を…

Reasoned Schemer (55) 10章 walk*

(walk w ``((,x . b) (,z . ,y) (,w . (,x e ,z))))は``(,x e ,z)だけど (walk* w ``((,x . b) (,z . ,y) (,w . (,x e ,z))))は``(b e ,y)になる そんなwalk*について考える 変数が見つかったら終わりというだけではなくて 値の中に変数があればそれも置き換…

本好きの下克上 第一部~第三部 読んだ

ここ2週間くらいこれ読んでました 【合本版 第一部】本好きの下剋上(全3巻) 本好きの下剋上(合本版) (TOブックスラノベ) 作者: 香月美夜 出版社/メーカー: TOブックス 発売日: 2017/03/17 メディア: Kindle版 この商品を含むブログ (6件) を見る

Reasoned Schemer (54) 10章 call/fresh, reified variable

新たな変数を導入する (define (call/fresh name f) (f (var name))) fは変数を引数にとってgoalを返す関数 たとえば(lambda (fruit) (== 'plum fruit))

ABC145

AtCoder Beginner Contest 145 - AtCoder は「D - Knight」が突破できず 最初は何も考えずメモ化再帰で解こうとしたけどメモ化はちっとも効果なし 図を描いてみたら単なるパスカルの三角形 じゃあnCk求めればいいんだもらったな こう書いたら半分TLEになりま…

侍巾帷房紈扇 練習(行書)

今日は行書だけ 行書のときの方が楷書に比べてあれこれ考えずにすむ分書きやすい・・・と書いてるときは思ってるんだけどサムネイル画像を見るとバランスのとれてなさに愕然とする