(apply-generic op . args)

教育者, 将軍, 栄養士, 心理学者, 親はプログラムする. 軍隊, 学生, 一部の社会はプログラムされる. - 計算機プログラムの構造と解釈 序文

初めてのGo言語 読了

Golangの勉強をしようと思い、「初めてのGo言語」を読みました。 2023/05/01から読み始め、2023/06/12に読み終わりました。 やってない日もあるので、実際には34日間かかりました。 この本を選んだ理由 以下のレビューがとても刺さったので(特に実用〜とジェ…

SICP 読了

計算機プログラムの構造と解釈(以下SICP)を読み切りました。 2022年9月22日から2023年4月30日まで、157日間かかりました。 10年前は途中で挫折したけど、今ならやりきれると思って重い腰を上げた。無理せず1日1Pを目処にして、2~3年掛かっていいから継続して…

2022年の振り返りと2023年の抱負

あけましておめでとうございます。 今年も宜しくお願いしますmm 2022年の振り返り 1年がビックリするくらい早く終る、その事に慣れてきました。 筋トレ始める 手首の手術(4/21) サーフボード2本目Quong 7'6"購入(5/11) ベース再開 ギター再開 SICP再開(9/22)…

SICP 3.5 ストリーム

結構最後の方は問題飛ばしてしまった。 若干飽きてきてしまい... 2周目で深堀りしたいな。 gaucheでSICPのdelay gaucheで遅延評価しようとすると、実装の違いからSICPの意図とはズレていしまいます。 よってpackages/配下に以下のファイルを置いて対応しまし…

SICP 3.4 並列性: 時が本質的

github.com ; ex-3.38 ; Peter: (set! balance (+ balance 10)) ; Paul: (set! balance (- balance 20)) ; Mary: (set! balance (- balance (/ balance 2))) ; ; a. ; Peter->Paul->Mary, 110->90->45 ; Peter->Mary->Paul, 110->55->35 ; Paul->Peter->Mary…

SICP 3.3.5 制約の拡散

github.com 3.34~3.37はスキップします。 これはやらなくても別に困らないというか、もういいかなって。 (define (for-each-except exception procedure list) (define (loop items) (cond ((null? items) 'done) ((eq? (car items) exception) (loop (cdr i…

SICP 3.3.4 ディジタル回路のシミュレーター

う〜ん、今回もまた「最後に完成するまで動かせない」系の奴でちょっとテンション下がってしまった。 入力したいデータ、出力で欲しいデータはわかっている 大枠を作っていく 細かいところは後で作っていく これは良いんだけど、細かい部分が未実装だから動…

SICP 3.3.3 表の表現

github.com 3.3.2の最後のデキューの実装でちょっと燃え尽きた感があったのと、次の「デジタル回路のシミュレーター」が楽しみ過ぎて3.3.2はざっくりとだけ... (define (assoc key records) (cond ((null? records) false) ((equal? key (caar records)) (ca…

SICP 3.3.2 キューの表現

github.com ; 3.3.2 キューの表現 ; 3.3.scmはconsを自前実装しているのでファイルを分ける(dispatchを返して意図したように動かないので) (define (make-queue) (cons '() '())) (define (front-ptr queue) (car queue)) (define (rear-ptr queue) (cdr que…

SICP 3.3.1 可変リスト構造

github.com ; ex-3.12 (define (append x y) (if (null? x) y (cons (car x) (append (cdr x) y)))) (define (append! x y) (set-cdr! (last-pair x) y)) (define (last-pair x) (if (null? (cdr x)) x (last-pair (cdr x)))) ; ; (define x (list 'a 'b)) ;…

SICP 3.2 評価の環境モデル

見にくい...↓こちらで見れる github.com ; ex-3.9 ; ; 再帰版 ; _____________________________________ ; 大域領域 -> | | ; ------------------------------------- ; ↑ ↑ ↑ ; E1→|n:3| E2→|n:2| E3→|n:1| ; (if (= n 1) ; 1 ; (* n (factorial (- n 1))))…

SICP 3.1 代入と局所状態

; 3.1.1 局所状態変数 ; withdraw以外のどこからでもbalanceにアクセス出来る. ; withdrawからだけアクセス出来るようにしたい. (define balance 100) (define (withdraw amount) (if (>= balance amount) ; beginは順次評価していって最後の式を返す ; set!…

SICP 2.5 汎用演算のシステム

問題2.85で意図しない動作に。 修正しようにも1fileで雑に書き進めたので修正厳しいので2.85以降は飛ばすことに。 もうapply-genericええやろ...(疲労) 2週目、又は一旦全部終わったら2.4と2.5をやり直そうと思います。 1周目から完璧を求めると挫折するので…

SICP 2.4 抽象データの多重表現

get,putが出てきてから動かせなくてしんどくなり、apply-genericで混乱したので色々検索。 github.com ここで3.3.3のget,putの実装を載せてくれていたので動かしながら理解することが出来て助かりました。 ; 2.4.1 複素数の表現 (define (add-complex z1 z2)…

SICP 2.3.4 例: Huffman 符号化木

GET A JOB SHA NA NA NA NA NA NA NA NA GET A JOB SHA NA NA NA NA NA NA NA NA WAH YJP YJP YJP YJP YJP YJP YJP YJP YJP SHA BOOM '(1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 …

SICP 2.3.3 例: 集合の表現

やってます #| ; 要素xが集合setの構成要素か? (define (element-of-set? x set) (cond ((null? set) #f) ((equal? x (car set)) #t) (else (element-of-set? x (cdr set))))) ; setにxを追加する (define (adjoin-set x set) (if (element-of-set? x set) s…

SICP 2.2.4 例:図形言語

実際に描画出来ないのでパスした問題が何問か。 gauche-glとかを使えばいけそうな気がしたけど、使い方とか調べてまでこれを描画したいか?と言われるとそうでもなかったのでパスする方向で(テヘペロ SICP2周目とかでやるといいかもしれない。 ; wave ; 線画…

SICP 問題 2.42 エイトクイーンパズル

ex-2.42 エイトクイーンパズルが終わりました(2.43もエイトクイーンパズルだけど). 全く何も見ないで解くのは無理だなーと思ったので、答えを見て動かしながら手続きどの様に動作するのか?を理解するに留めました。 まぁこういうのは「知っているか、知らな…

何度目かのSICP再履修

何回目だろう?SICPやってます。 今回はなんと続いています(笑) ↓今日はここまで進みました。 19日目(p65->p68/p366(18.56%))`2.2.3 公認インターフェイスとしての並び`を読んでいます。問題2.33をやりました。次回は問題2.34からです。無理せず1日1P,1問を…

MacでMozart Programming Systemを実行するために

コンピュータプログラミングの概念・技法・モデル(CTMCP / ガウディ本)がまだ途中までしかやっていなかったなぁと思い、1ページからやろうとMacにMozartを入れたら Aquamacs Not Found が出た。 あぁ、そういえば最初にこれ買った当時もこれあったわー。。…

Common LispのTestingFrameworkを2つほど触ってみる

昨日に引き続きCLネタです。 引っ越しの準備で大江戸Ruby会議に行けなくて寂しいので、家で一人でLISPの妖精さんとお話してや?はLISPの妖精で、REPLを使うことはLISPの妖精との対話である(ダグラス・ホフスタッター頭良すぎてぶっ飛んでる) メタマジック・ゲ…

Common LispライブラリShellyを試してみた

MakeやRakeみたいなことが出来るLispライブラリShellyを試してみました。 おもしろいので貴方も試してみましょう(今回は一回もエディタを開いていないので、Emacsじゃないと、、、みたいなことは一切ないよ!!!)。 Shellyのサイトはこちら. 昔シェリーとい…

Turbolinksを有効にしたままでangularjsを使用する

Turbolinks and Angularjs 最近はangularjsとRails4の組み合わせであそ、、、仕事しています。 まだまだangularjs触り始めて数日ですが、Turbolinksを有効にしているとng-showなどが画面遷移した際に上手く動かなかったのにハマったので、解決方法を自分用に…

werckerで自分のBOXを作ってみた

werckerで自分のBOXを作ってみました。 割りと簡単だったのでみんなももっと作るといいと思った(自分達のプロジェクトに最適なBOXって中々ないよね)。 作ったリポジトリはこちらです。 https://github.com/iori/box_iori_wercker やったこと Ruby2.1.1のイ…

Rubyで無名再帰

http://kouyatakao.hatenablog.com/entry/2014/02/28/152153 を書いてて、あれ?Rubyって無名再帰どうすんの?と思って調べたらできたのでメモ class Proc def self_curry self.curry.call(self) end end def fib_closure cache = [] lambda{|f,n| cache[n] …

Rubyでフィボナッチのメモ化

仕事つかれたー、なんかリフレッシュしたーい。 なんて時によくフィボナッチを書いて、それをメモ化してにやにやします。 で、今も仕事の合間にそんなことをしていたのですが、需要少しはあるかなーと記事にしてみた。 普通にフィボナッチ irb(main):001:0> …

werckerで既存のRailsプロジェクトを突っ込んだら結構ハマった話し

追記: 2014/03/23 Werckerにバグ報告したら直してくれた :) 最近はクラウドCIサービスでテスト回したりするのがどんどん普及していますね。 TravisCIやCircleCIやCodeShipなどなど。。。 その中でプライベート・リポジトリでも現在は無料で使えるWerckerがど…

実用CommonLisp -第二章読了-

PAIP2章読了しました。 二日酔いで死んでいたので2日ほど空いてしまった。 生活リズム崩れまくって、今日は徹夜して一気に戻す作戦なので眠い目を擦りながら朝5時くらいからPAIPってた。 2章はDSL書きましょうって内容でした。 うーん面白い。 https://githu…

実用CommonLisp -第一章読了-

仕事もようやく落ち着き、勉強の時間がとれるようになったので第6章までしかやってなかった(と思う)実用CommonLispを最初から勉強し直し初めた。 LISPをまともに触るのは久々で、組み込み関数を結構忘れている(汗 でも、暇な時とか煮詰まった時にCLでフィ…

nullとnilの違い

実用CommonLispの以下のコードを書いていて、そういえばnullとnilの違いってなんぞや?って思い調べてみた。 (defun mappend (fn the-list) "Apply fn to each element of list and append the results." (if (null the-list nil (append (funcall fn (first…