2019-11-01から1ヶ月間の記事一覧
Connecting the Wires いちいち(let ... (map ... (call/fresh ... (disj2 ... (disj2 ...)))))などとは 書いていられないのでマクロ書くよ!という章 まずdisj2のいくつでもゴールを取れる版disj実際にはcondeが使われるので補助的な位置
こんどはonce これはconduのもとになってるはず
if-then-elseとconda、なんとなくつながりがありそうな気はするんだけど どうなるんだ? condaの式をifteで書けるはずなんだよな (conda (#s #u) (#s #s))を書き直してみよう
PC触るのは10時まで、とゆるめに決めているんだけれども(しょっちゅう破る)最近帰りが遅い日が増えて今日は帰った時点で10時過ぎ書くのやめておこうかなあと思ったけど寝る前に思い出して腕立て伏せ1回でも習慣継続、っていうのを思い出してちょっとだけ書…
興奮するのもいいけど、なにか忘れてませんか? condaとconduはどうしたっけ そうですね ifteってのを定義します IF-Then-Elseの略
Let’s put the pieces together! piecesをtogetherすると完成? appendoをこの章で定義した関数だけで書く
侍巾帷房紈扇 楷書すこし左払いのコントロールを取り戻せたかもしれない穂先の先まで指のつもりで神経を通す(気持ちだけ)すこーし筆を左にひねるようにしながら払うときれいにまとまる気がしたけど正しいやり方かどうかはよくわからないたぶん正しくない
reifyするっぽい何か
いつぞや某プログラミング情報サイトで物議をかもしてた人の物議をかもしてた本 関数型プログラミングに目覚めた!IQ145の女子高校生の先輩から受けた特訓5日間 作者: 岡部健 出版社/メーカー: 秀和システム 発売日: 2015/04/22 メディア: 単行本 この商品を…
(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件) を見る
新たな変数を導入する (define (call/fresh name f) (f (var name))) fは変数を引数にとってgoalを返す関数 たとえば(lambda (fruit) (== 'plum fruit))
AtCoder Beginner Contest 145 - AtCoder は「D - Knight」が突破できず 最初は何も考えずメモ化再帰で解こうとしたけどメモ化はちっとも効果なし 図を描いてみたら単なるパスカルの三角形 じゃあnCk求めればいいんだもらったな こう書いたら半分TLEになりま…
今日は行書だけ 行書のときの方が楷書に比べてあれこれ考えずにすむ分書きやすい・・・と書いてるときは思ってるんだけどサムネイル画像を見るとバランスのとれてなさに愕然とする
何か見えた気もするんだよな substitusionのstreamってなんなのかってのがイメージできてない (unify u v s)はuとvは同じですっていうことにしたsを返すこと、 っていうあたりまではわかった気になっている この間のギャップが埋められるだろうか
(define (conj2 g1 g2) (lambda (s) (append-map-inf g2 (g1 s)))) disj2と似てるような似てないような disj2はappend-infを呼んでるけどconj2はappend-map-infを呼ぶ disj2はg1もg2もsに適用されるけどconj2はg2だけ g1とg2が非対称なんだ
(define (take-inf n s-inf) (cond ((and n (zero? n)) '()) ((null? s-inf) '()) ((pair? s-inf) (cons (car s-inf) (take-inf (and n (sub1 n)) (cdr s-inf)))) (else (take-inf n (s-inf)))))
(define (alwayso) (lambda (s) (lambda () ((disj2 succeed (alwayso)) s)))) しっかり読んだらalwaysoの動きがイメージできるようになるだろうか まずalwaysoの形を確認 alwaysoは引数のない関数で substitutionを引数にとって、substitusionのstreamを返…
次はこれ > (let ((s-inf ((disj2 (== 'olive x) (nevero)) empty-s))) s-inf) (((#(x) . olive)) . #<procedure:...r/minikanren.scm:52:29>) (== 'olive x)の値と(nevero)の値がappendされているようではある ところでこの式って((disj2 (== 'olive x) (nevero)) empty-s)と何が違うの letの意味</procedure:...r/minikanren.scm:52:29>…
あれこれやらず今日は楷書だけ 左払いがコントロールできなくてボテッとしたりひょろっとしたりする筆の向きが影響してるような気がするけどどうするのがいいのかはよくわからないいろいろ考えすぎておかしなことになっている気もする 特に房がうまくバラン…
・・・Ubuntu入れてみようか(ごくり Ubuntu (18.04) をMacbook Airに入れてみる - kb84tkhrのブログ というわけで先日いろいろ苦労しながらMacbook AirにUbuntuを入れましたが最近Windows PCの利用割合が増えてきたのと ムスメが学校でパソコン使って調べも…
(define (nevero) (lambda (s) (lambda () ((nevero) s)))) これはminikanren言語じゃないよね 動かしても関数が返ってくるだけなのでわかりづらい
(define (disj2 g1 g2) (lambda (s) (append-inf (g1 s) (g2 s)))) goalはsubstitutionを取ってsubstitusionのstreamを返すもの というのはあってる(当然 でこれってどういう意味なの っていうかその前にsubstitusionのstreamってなんなのかってのがわかっ…
condeのモトになっているdisj2とそのヘルパー関数append-inf append-infから見よう
streamとは空リストかcdrがstreamであるペアかまたはsuspension suspensionとは(lambda () body)という形をしていて評価するとstreamを返すもの 遅延ストリームって言われるやつだな そんなのが突然の出現 そして意外にさらっと説明・例示が終わる
unify Prologといえばユニフィケーションって出てくるくらいだからきっと何か大事なもの
侍巾帷房紈扇 楷書はうっかり筆を拭いてしまって消滅今回はなんとなく形がとりやすい印象
(ext-s x v s)はsubstitution sにassociation `(,x . ,v) を 追加したものを返す ただし循環参照ができるようなassociationは追加できず#fを返す
ムスメ用に借りてきた本 戦国人物伝 今川義元 (コミック版日本の歴史) 作者: すぎたとおる,玉置一平,加来耕三 出版社/メーカー: ポプラ社 発売日: 2017/04/28 メディア: 単行本 この商品を含むブログを見る