2007-11-01から1ヶ月間の記事一覧

頭の悪いコメント

最近ようやく、(* *)の打ち方がわかってきました。 (*は中指→人差し指、*)は人差し指→中指か薬指(気分次第)で打ちます。 このとき、位置はあくまで*基準で覚えておくと間違えにくいようです。 ……Pascalが{ }を使うようになったのは正解と思いますというか、…

頭の悪いパーサコンビネータ

普通に再帰下降で書いていたはずが、定型句が面倒になって、関数を作る関数に変えていったらこんなふうになってしまいました。 (* 2.3: identifier ::= identifier_start {identifier_start | identifier_extend} *) let rec identifier () = p_do ( identif…

「あなたが一番好きなアルゴリズムを教えてください」

http://q.hatena.ne.jp/1195950564 via http://www.kmonos.net/wlog/79.html#_0037071127 DDAによる斜線描画が好きです。

月配列 Yx/Harmonies du soir

Key

今はこんな感じで使ってます。 表 せ け ☆ て ょ つ ん ☆ な 半 を は か し と た く う い 濁 れ ー す こ に さ そ っ る き あ ち 裏 ぁ ほ り ふ め む え ま み ぬ ぃ の ら ゅ よ ひ お も わ ゆ ’ へ ぇ ぉ ね ゃ や ろ 、 。 ぅ 点や感嘆符含む記号…

libpngがスタティックリンクできるようになった

http://panathenaia.halfmoon.jp/alang/delphi.html setjmpが必要で、他の言語から使いにくいと言われているlibpngですが、やればできるものです。 インラインアセンブラでC++Builderからsetjmp持ってきただけですがっ。 -DPNG_NO_SETJMP_SUPPORTEDは、壊れ…

男性には「2割高め」、女性には「2割安め」

http://homepage1.nifty.com/bee/diary/2007b.html#d20071108 先に何を見せられたかに関らず、1万2千円と8千円の間で長時間悩みまくった揚げ句、一瞬の気の迷いで千円のを買ったり2万円のを買ったりネクタイを必要としているにも関らず何も買わずに帰ったり…

頭の悪いFormat

参考(元ネタ)→http://d.hatena.ne.jp/soutaro/20060506/1146925290 トップレベルで式を評価してもと出て何もわからないのはとても悲しいのですが、そんなときも#install_printerしておけばなんか出せます。 open Format;; let print_utf8string x = print_st…

頭の悪い最適化してるつもりのコード

OCamlが遅くなる一番の原因はGCらしいです。某.NETや某JavaみたいにGCが他のアプリケーション用のメモリを食い潰すような実装にはなっていない良心的なGCらしいことは評価していいと思いますが具体的にどうなのかはさっぱり知りません。 ↑のコードでは、いち…

新しい構文

camlp4上の改訂版構文とやらを使ってみた。

更に頭の悪いUTF9

Adaでもビット操作の方が短くなった。言語の得意分野ですらこの始末……。 こりゃUTF-9が普及しても、Adaの普及は望めませんね……。 先に検証しとけよって話だ。 死にたくなったので銀猫行ってきます。

頭の悪いUTF9

試しにDで書いてみたら普通にビット操作のほうが短かった。こりゃスクリプト言語なら100バイト切るな……orz バイト境界をまたぐpacked配列が使えないと長くなるはずという単なる思いこみオチでした。終了。

packed UTF9

もう露骨にAdaのLanguage Rankingを上げるためだけの問題を出題しました。正直ごめんなさい。 ieee754では予想外にRubyが短かった*1ものの、なんとかCに一位をキープして貰えてスクリプト言語を落とす目標は達成。 まあそんなわけで、今回は密かに暖めていた…

隣の芝パート2

Haskellのwhere欲しい。切実。 再帰でループはいいんですが、初期条件を与えるところがループ本体より下になってしまうのがいただけないです。 これはもうcamlp4に手を染めろってことでしょうか?

{OCaml] 頭の悪い無限リスト

Haskellのようなやつ。書いて書けないことはなかった。面倒ですが。 type 'a item = E | S of ('a * ('a inflist)) and 'a inflist = 'a item lazy_t;; let rec take : int -> 'a inflist -> 'a inflist = fun n list -> if n = 0 then lazy E else match La…

頭の悪いレコード

# type t = { x : t };; # let rec z = { x = z };; これを対話環境上で実行すると面白いことに。