バグレポート

そのまま公開するとまた面倒臭い事になりますから、Timeeingine はいくら好意的に解釈しても大きいバグが二つ存在するので直したほうがよいとだけ。("store" は問題外でカウントに入りません)gpg+base64 してあります。鍵を公表する事がなければそれでよし。…

僕が良く使う Haskell のための Elisp

(defun haskell-dquote-plusplus-plusplus-dquote (arg) "Insert \" ++ ++ \"" (interactive "p") (insert "\" ++ ++ \"") (backward-char 5))でこれを (local-set-key "\C-x\"" 'haskell-dquote-plusplus-plusplus-dquote) で便利便利!

Tシャツを印刷するには

utme http://utme.uniqlo.com/ が日本ではちょっと流行っているようです。一枚から。1990円。私もデザインだけしてみました: シルクスクリーンは品質は良いんですけど、スクリーンを作る必要上、フルカラーは無理(普通は単色で、地色とのコントラストにあな…

4.02 予習その2 新しい module type、 (module M)

OCaml 4.02 に追加された新しいモジュール型、 (module M) が結構いけているのです。OCaml である既存のモジュールの型は?というと、 module type of M というのがあって、 module type of Unix とやると Unix モジュールの signature を貰えるというもので…

大事なことは全部MLが教えてくれた 〜 Apple の Swift の mutability 周りの件を理解する

開発者アカウントに金が出せない貧乏人の方々が、次の Apple の Swift のコードの挙動がわからない、というので盛り上がっております: let a = [1,2] // a = [1,2] var b = a; // b = [1,2] b[1] = 3; // a = [1,3] b = [1,3] b.append(5); // a = [1,3] b =…

Swift について

普段パクリにはうるさそうな連中が Apple 様がパクルとスルーして嬉しそうにしているので、ああ所詮はそういう人達なんだなあと思って拝見しております。 元祖 Swift parallel scripting language: http://swift-lang.org/ アイコンまでクリソツなのでもう駄…

純粋関数型のコンセプトを「関数型言語ではー」とか広げて言わんといて!

そもそも「関数型言語」という言葉自体、どうなんやいうのもあるんですけど http://www.slideshare.net/ksknac/120901fp-keyとある純粋関数型言語の特徴でもって「関数型言語ではー」とか言われると、非純粋関数型言語のユーザーとしては(いやお仕事では純…

OCaml MinGW でがんばる時メモ

Wodi に依存する場合は死ぬまで依存。上手く行かなくなっても泣かない。Wodi に依存しない場合 OCaml の Windows ビルドは三種類あり、それぞれ特性が違う。これは Native MinGW での話である。他人の Windows での OCaml の話を聞くときにはまずどの種類か…

OCaml + Mingw bigarray.cma issue

Summary: OCaml+Mingw or Flexlink need to be upgraded for newer cygwin mingw gcc(I dunno which one exactly) so that -static-libgcc can be given to the link of dllXXX.dll. So far, a tentative fix in OCaml side is to change config/Makefile:FL…

ソウルフル小話: 型付き関数型言語と C++ は同時に使ってはいけない

いやまじで使っちゃいけないです。三年前こういうことがあったんです。 Haskell と C++ を使っているコードなんですが、 突然ビルドができなくなる。さっきまで上手く行っていたのに、意味不明な C++ のエラーがゴボゴボ出てくる。 git status や hg status …

stone 穴堀り

人からこんなテクニックを聞いた。私には必要ないが。Stone http://www.gcd.org/sengoku/stone/Welcome.ja.html 設定 火壁つきプロキシがある。 proxy:8080 とする。これが何でもかんでもブロックしてつらい、が、アマゾンで買い物できるように https は通す…

単一化で人間の気持ちが失われるんだ!というサビシイ話

OCaml 演習とかやってひぃひぃ言っている人対象ですぅ。わからない人にはわかるように書いていませんから、「さっぱりわからない」とか呟く前にスルー推奨です type t = int list list list let x : t = [[[1]]] let y = x @ x をコンパイルすると、 x は t …

EP (就労許可) カードを無くした時

シンガポールで仕事をしている人や、その家族がパスポートよりいつも肌身離さず持っている率の高いEPやDPカード。そこに記載されている個人識別番号は結構普通にいろんなところで(各種行政書類、電話、ガス、水道、電気の契約、はてはレストランの割引会員登…

Note for mercurial-git / hg-git and https access to github

I needed the patch discussed in here: https://groups.google.com/forum/m/#!topic/hg-git/YVvcRH8R8NIThenAdd ~/.hgrc: [extensions] hgext.bookmarks = hgext.git = [auth] xxx.prefix = https://github.com xxx.username = my_user_name xxx.password =…

A memo for installing Wodi32 on Vista

I got a trouble to install wodi32 on my Vista box.bsdtar hang saying: 5 [sig] bsdtar 2428 get_proc_lock: Couldn't acquire sync_proc_subproc for(5,1), last 7, Win32 error 0The real trouble is, this bsdtar process is a real badass. You canno…

OutsideIn(X) と OCaml

Haskell の実装 GHC の新しめのバージョンでは 多相let の型付けが今までの HM (Hindley Milner) 方式から新しい OutsideIn(X) に変わっています。(言語拡張でどうたらあるらしいがシラネ) 詳しい動機はまあいろいろあるみたいですが GADT とか Type family …

金融と OCaml

関数型言語というと金融で流行っている、特に OCaml と言えば金融御用達関数型言語として語られることも多い。金融業界に関数型言語を持ち込み成功した最初の二社 LexiFi とJane Street Capital は共に OCaml を採用し、そして二社とも今日成功しているから…

Risk of Rain

Risk of Rain というミニドットな 2D プラットフォームシューターをちびちびとやっています。面白い。 各面の形は毎回少しづつ変化がある(大きいレイアウトは決まっているので迷わない) Rogue 系要素。敵はランダムスポーン。時間がたつと強い敵がだんだん…

OCaml がおかしくなったとき

違うバージョンのコンパイラを違うバージョンのライブラリセットに対し間違って使ってしまった コンパイラが変われば元のコンパイラで作成したオブジェクトやライブラリは新コンパイラではまず使えない clean せよ which ocaml / which ocamlc / which ocaml…

言語の実装は関数型言語で、は本当か

表題の様なことがちょっと気になったので、型無λ計算の big step semantics (戦略は正格評価)を実装しました。まあ要するにしょぼいインタプリタですね。 FP でλ計算を実装する まず、普通に関数型言語(OCaml)で実装してみました。 λ式の型は t (term) λ式に…

星のキャミバ様 Adventure Calendar 第603~605夜: ペナンに行ってきた

これは 2013年7月の旅行記です。(面倒なんで東南アジア方面用語は解説しません。ググッておくれー)うちの息子の毎度曜日のスイミングが先生の夏休みで二週間なしになりました。で、急に旅行してみようということになりました。アンコールワットとか見に行こ…

静的型と OO というものははじめから…

OO の方面から、「静的型とか別に役に立つとは思えない、静的型の人は頭おかしい」とか関数型の方面から、「静的型が役に立たないなんてはずない OO の人は頭おかしい」とか良く聞こえてくるんですが、ダックタイピング心理学 とかいう真に頭おかしい意見を…

星のキャミバ様 Adventure Calendar 第727夜: 借家の更新

先日、借家(コンド)の更新しました。二年前というか 2012年01月01日 から二年契約で借りたものです。シンガポールでは契約単位は数年(二年がほぼ普通)でその期限内に店子は追い出されることはないのですが、契約が切れると更新時には貸しては自由に家賃…

Launch CamlP4 with some help of OCamlFind

I do not know why but there is no ocamlfind camlp4o. Here is a tip for this: #!/bin/sh # \ mark is actually a backslash. camlp4o \ `ocamlfind query -r -i-format $*` \ `ocamlfind query -r -a-format -predicates syntax,preprocessor $*`I named…

すぐできるキモイ OCaml 改造メモ

糖衣構文で可能 (P4 マター) 関数にする (.[1]) (.[]) (.(1)) (.()) (.field) (#meth) (,,,) どんどん関数にする (.[] もっともっと関数にする {.. with x = e} など (.. が無いとさすがに怖い) 糖衣構文ではできない (コンパイラ改造コース) open M の名前…

OCaml 4.01.0 変更点

スペルチェック 識別子のミスタイプがあった場合訂正を提案します: # List.lentgh ;; Characters 0-11: List.lentgh ^^^^^^^^^^^ Error: Unbound value List.lentgh Did you mean length? 個人的には、はあだから?と言った感じかと思っていたのですが、今の…

オブジェクトファイルのリンク順

OCaml のオブジェクトファイル(.cmo, .cmx)を並べる順番には意味がある。 順番を間違えると: Reference to undefined global Hogehoge などと言われるので注意。 a.ml: let x = 1 b.ml: let y = A.x c.ml: let z = B.y というソースがあったとする。 a.ml, b…

List の ; と tuple の ,

List, Array, Record などの要素区切りの ; はとても奇妙に見えるかもしれない。 OCaml を使っている人でもあまり意識していないのだが、実は一貫性がある。 A ; B は B ; A と書いても型は変わらない A , B は B , A と書くと型が変わる場合がある 例: prin…

例外の効率: OCaml の例外は早い、は本当か

例外による再帰関数からの大域脱出は OCaml ではランタイムのペナルティはほとんどない、 という事になっている。 try with を書いてそれでもコードが読みやすければ使って構わない。 が、実際のところ、どうか。 -g を付けてコンパイルした場合、遅くなる。…

National Day Parade の国旗牽引チヌークヘリコプターを東海岸で見るには

ここが良いです。大きな地図で見るマリーナベイからずっとやってくるのが見えます。真横を飛んでいくので中々良いですよ。戦闘機がスモーク炊くのも遠くから見れます。Marine Parade民にはお勧めです。ただし、花火は木に隠れて見えません。夜風に当たりなが…