bonotakeの日記

元・ソフトウェア工学系研究者、今・AI系エンジニア

算譜

さらに続き

※ 今しがた、親と付き合って酒をしこたま飲んだので、正しいことかいてるかは(いつも以上に)保証できません。日本語がおかしいかもしれません。 以上(1, 2)を踏まえて考えてみると、以下のような、プリミティブな関数をもう一個追加すれば、とても見通し…

ということで

上のエントリーの続き。インタプリタをちょっと改造してみた。 interpret :: Lang -> Lang -> Computer Lang interpret m l = Run $ \p -> let (p', l') = runner (run l) p in (I m p' l', m) 実行結果。 *Main> showComp (P S) $ return S >>= interpret T…

インタプリタとコンパイラのモナド

これ、モナドで書いてみた。いや、なんとなく… data Lang = S | T | M deriving (Eq, Show) data Program = P Lang | I Lang Program Lang deriving Show data Computer l = Run { runner :: Program -> (Program, l) } instance Monad Computer where retur…

モナドとテンプレート処理

檜山正幸のキマイラ飼育記 - JavaScriptによるテンプレート・モナド、すっげー簡単! 後で読む。はてブの代わり。元記事の方は読んだ。 モナドといふもの(Haskellの、というより、圏論の)がなんとなく頭の片隅にイメージできるようになってきた頃、*1「一番…

S言語とR言語

職場の後輩E君と私の会話。 E君「そういや、R言語ってありますよね。統計に使うやつ。」 私「え? S言語でしょ。」 E君「いや、R言語ですよ。職場で使ってる人いましたよ。」 私「いやいや、Sだって。」(←職場のS言語ユーザを沢山知ってる) と、お互い譲ら…

To Iterate is Human, to Recurse, Divine

「ループは人の技、再帰は神の技」。ヒビルテより。気になったので出典を調べてみた。ぐぐってみると、これをタイトルにしたJames O. Coplin のコラム(昔の連載記事?)を発見するが、この人がオリジナルではなく This month's title comes from another on…

カリー化は自然変換?

英語版Wikipediaの記事 "Currying"*1 より。 In category theory, currying can be found in the universal property of an exponential object, which gives rise to the following adjunction: There is a natural isomorphism between the morphisms from…

PPLサマースクール

おとといですが、行ってきました。業務で。いやなかなか興味深いお話が沢山聞けました。関係者の皆さん、どうもお邪魔しました。お喋りしてくださった皆さんありがとうございました。 いろいろコメントなどしたいですが、なんか最近くそ忙しいのでこの時期に…

檜山正幸のキマイラ飼育記 - クラス、オブジェクト、型; なんだか変じゃない? -の練習をやってみる。

「この継承は変な感じ」 気持ち悪い理由。…Point3D じゃなく Poit3D だから、というのは嘘で :D (以降勝手に修正して書きます) Point3D extends Point2D としたとき、たとえば Point3D.moveTo() というメソッドは class Point3D extends Point2D { void mo…

RHG読書会

に初参加しました。ふつける読書会。

余代数

http://d.hatena.ne.jp/m-hiyama/20060615/1150330754から一連の議論を読んで、オブジェクト指向の話でも書こうかしらん、と思ったけど、そのうち余代数の方に興味がシフトしていってhttp://www.chimaira.org/docs/AlgebrasCoalgebras.htm とか http://cites…

素人くさいSICP読書会

に参加@2回目。懐かしい顔と数年ぶりに(リアルで)再会。うーんやっぱり手が早いねって違う意味に取れますが違いますよw今回は苦戦してしまいました。問題1.45はなんでそうなるのか、未だに納得できず。1.46は問題文(日本語)を読解するのが一番時間かか…

SICP勉強会@職場

世間の流行など全く知らない(と思う)職場の先輩が、たまったま古い本棚から、大昔のSICP(原著)を発掘してきて、何故かそのままハマってしまったようで。 んで私と「面白いですよねぇ」とか雑談で盛り上がっているうち、勢いで、職場で勉強会をやろうとい…

素人くさいSICP読書会

に参加してみました。danさんお世話様でした&コーヒーご馳走様でした。 そのdanさんも言っていた、「SICPの醍醐味は5章」と言うのには狂おしいほどに同意。Lispマシン激しく作りたい。 geekが革新的なアーキテクチャ作る時代になってほしい。 つか、最近よ…

さらに追記

自分の界隈の話ですが、「言語処理系の構築」で飯食ってる人も一応いますよ。 あの会社の誰々さんに頼もう、とかいう感じで仕事の発注出したりします。

追記

まぁそんで。ていうかあんまりつながりないですが。やっぱり思いますけど、大学で正規の教育を受ける機会があるなら、そこでちゃんと勉強するのが一番の早道ですし、もったいないのでサボらないでください。絶対に後々効きますので。ええ。

仕事でプログラミング言語を作る

ええと、やっぱり書いてしまうわけですが:P でも、誰かのブログにトラックバックもつけないし、つけられてもコメントもらっても反応しませんです。書きっぱなしジャーマンってことで。 仕事で言語(処理系)を作る機会は…自分の知る限り、DSL(Domain Specif…

アルゴリズム 個人的完結編

本棚の奥にしまっていた本をなんとなく眺めていたら、自分の中では*1全部解決してしまいました。 という事で、その本を引用して、この話題については自分的終了にします。って今までも一回しか触れてないけど。 ところで、ある入力に対してはシステムが異常…

アルゴリズムは必ず停止するのか

Newton-Raphson法ってどうなんだろう、という素朴な疑問があったりして。 話はちょっと逸れますが > 例えば、「そのアルゴリズムは止まるんですか?」みたいな、定義に含まれることを質問してしまいそうで。これは「そのソートで本当にソートされるんですか…

ボーランドがIDE事業を売却

Kazzzさんの日記から。ついにこの日が来てしまいました。Turbo PascalとDelphiには本当にお世話になりました。自分を育ててくれた言語&IDEでした。 確かに最近迷走していたというか、開発環境としてのウリが全く見えなくなっていたので、仕方ないのではあり…

なぜ手続きは戻り値を持ったのか

圏論勉強会で人が集まる前に、ちょろちょろと。走り書きみたいになってしまいますが。 また朝方にぼーっと考えていたのだけど、なぜ多値関数が流行らないかを問う前に、掲題の事実を考えた方がいいんじゃないかとふと思いました。ていうか、CやPascalが現れ…

Layered Monads

id:sumiiくんがトラバくれたんだけど、そこから張ってあったリンク。→http://www.diku.dk/~andrzej/papers/RLM-abstract.html…自分、いまpsが見られない環境なので(ぉ、とりあえずメモ。

ソフトウェア技術者の常識

自分も昨日のエントリーで多少言及したりしてますが、檜山さんが最近「プログラマの常識とは何ぞや?」的なところで腐心されている模様。教育目的がメインだと思われるのですが、私はまったく別の観点で、この議論がどう発展するのかなぁ、というのを興味を…

文字列の比較

せっかくなので、別の問題にもコメント。(こっちはちょっと真面目?w) 1. str1, str2が文字列だとして、if (str1 == str2)と書いてしまうのはよく見かけますよね(ある意味、自然だと言える)。Cならstrcmp、Javaならequalsを使え、って教えるでしょうが…

そういえば

2. ローカル変数としてchar buffer[BUFF_SIZE];って宣言して、そのままreturn buffer;として何故いけない? これ、割と問題なしにいったりしますよ(いや、問題ありだけど)。 ええと、解答でも何でもないんですけど。そういえば昔、フリーなプログラマ時代…

処分

いい加減本が増えてきたので、要らなくなったものは処分しようかと本棚をガサゴソ。 そして、今回やり玉にあがったのがこんな本。Bruce EckelのJavaプログラミングマスターコース―徹底探究!Javaのしくみとオブジェクト作法〈上〉作者: ブルースエッケル,Bruc…

floatよりdoubleの方が速い

http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.4.4.html手元で試してないけど、そうなのかぁ。

圏論勉強会

でした。一年続きました。めでたい。 で、合間に以前のエントリーの話が出たので忘れないうちにメモ。 MLのタプルはスマッシュ直積(strictな直積)、つまり、。だけど、圏論的な直積はnon strictなので別物。 そういう意味で圏論の直積はHaskellのタプルに…

unitとvoid

unitは×の単位元(1)で、voidは+の単位元(0) おーそうだったのかぁ、と思いつつ、ふと疑問が。…(Xは任意の型) はどうなるのでしょう? 状況からして、直積、直和があってそれぞれに単位元1、0があるような圏を考える訳ですよね。こっからは当て推量ですけ…

注:bonotakeは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。