kb84tkhrのブログ

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

Reasoned Schemer (006) (Schemeからの)翻訳

nulloは見たまんま

(defrel (nullo x)
  (== '() x))

なんだけどじーっと見てるとわからなくなってきたり
これは#sとか#uとか返すやつ

pairoもやることは見たまんまなんだけど定義にはconsoを使う

(defrel (pairo p)
  (fresh (a d) (conso a d p)))

Is pairo recursive?

そうか、nulloが出てきたということは再帰が出てくるってことか

続きを読む

『名画で遊ぶあそびじゅつ!』

ウチのムスメは本が好きなので
占いとか心理テストとかヘアアレンジとかちょっと怖い系の話とか
好きな本は自分で勝手に読んでてそれはいいんですが
興味のない分野には見向きもしないタイプ

それはそれで悪いわけじゃないんですけど
親的にはいろんな本を読んでくれるといいなーと思ってるので
これどうかなあれどうかなと探してはこれどう?と渡しています

続きを読む

Reasoned Schemer (005) caro、cdro、conso

2. Teaching Old Toys New Tricks

Don't put new wine into old bottlesのもじりだったりするんだろうか
あんまり関係ないかな
そういうとこ気にしなきゃいけないとこが多そうで翻訳はちょっとたいへんそうだな
SICPとかマジメなやつのほうがある意味楽そう

さてcarの論理版?caroというのが出てきます
(run* q (caro '(a c o r n) q))とやるとq'aになるという

続きを読む

Reasoned Schemer (004) conde

  • disj2の中にconj2が現れるパターンはよく出てくるので、conde式を導入する
(run* (x y)
  (disj2
    (conj2 (teacupo x) (teacupo x))
    (conj2 (== #f x) (teacupo y))))

(run* (x y)
  (conde
    ((teacupo x) (teacupo x))
    ((== #f x) (teacupo y))))

と書ける

続きを読む

Reasoned Schemer (003) conj2、disj2、defrel

  • conj2はふたつのゴールが両方とも成功すれば成功する

2は引数がふたつってこと
conjはたぶんconjunctionの略
連言てやつ andみたいなもの
定理証明手習いにも出てきた

続きを読む

Reasoned Schemer (002) goal、run*、fresh、fuse

1. Playthings

相変わらず章タイトルは役に立ちそうにありません

  • goal: 何かしら成功したり失敗したり値を持たなかったりするもの
  • #s: 成功
  • #u: 失敗
  • run*: 成功する変数の組み合わせを探してリストで返してくれるなにか

たとえば(run* q (== q 'pea))の値は(pea)

続きを読む

Reasoned Schemer (001) Forewordとか

 『The Reasoned Schemer』買いました

The Reasoned Schemer (MIT Press)

The Reasoned Schemer (MIT Press)

  • 作者: Daniel P. Friedman,William E. Byrd,Oleg Kiselyov,Jason Hemann,Duane Bibby,Guy Lewis Steele Jr.,Gerald Jay Sussman,Robert A. Kowalski
  • 出版社/メーカー: The MIT Press
  • 発売日: 2018/03/09
  • メディア: ペーパーバック
  • この商品を含むブログを見る
 

 以下Theは省略

Scheme手習い』、『Scheme修行』、『定理証明手習い』と読んできて、
この『Reasoned Schemer』を読めばなんとなくコンプリート気分になれるはず
(ほかにもLittleナントカシリーズは出てるようなんですけど)

続きを読む