2007-01-01から1年間の記事一覧

頭の悪いmakefile

あれー、おかしいなー。GNUツールとは別れられたはずなのに。

頭の悪いformat

OCamlの自慢らしいタイプセーフprintf。 型がついているということはcamlp4では無くてOCamlの構文の上に乗っているということですよね……。 # Printf.printf "%d";; - : int -> unit = <fun> # Printf.printf "%d %d";; - : int -> int -> unit = <fun> # Printf.printf</fun></fun>…

隣の芝

F#の|>は便利そうだなー。F#は普通にlet mutable等と書けて良さげ。本家もこれぐらい割り切って欲しい。 あとHaskellの$が欲しい。

Polymorphic variant and record

「Modulaはレコードも含めて全部Structured Typeだったのに惜しい」の部分は、どうもPolymorphic recordで実現されるらしいが、よくわかりません。http://d.hatena.ne.jp/h_sakurai/20070311http://moscova.inria.fr/~zappa/teaching/stt05/types-3.pdfhttp:…

Stream.fromとクロージャ

特にこうやってその場でstatic変数モドキができるのは覚えとこう……。Haskellでは考えられないし(できるけど普通はやらない←ツッコミ避け)、クロージャがスタックに縛られているDやAdaでも考えられず、今までに経験してこなかったパターンなので。 # let s = …

私的OCaml

http://d.hatena.ne.jp/shinichiro_h/20050602#1117704889 id:shinichiro_hさんとこなどを見て、私的にOCamlに思うところを。(以下完全に私見というか、私にOCamlがどう見えているか、です) OCamlは素晴らしい言語だと思います。私的には気に入らない箇所も…

ocamlyaccとocamllex

実はyaccをまともに使ったことが無かったりする私ですが、ドキュメントの例にエラー処理を追加してみました。 /* File parser.mly */ %{ let parse_error (z : string) = print_string z; print_string " at ";; let print_pos p = print_int p.Lexing.pos_l…

GMP

なんか使えるようになったらしい。 MinGWもVisualC++も両方COFFなもので、MinGWでビルドしたlibgmp.aとlibmpfr.aを無理やりリンクしてgccから_chkstk.oだけ持ってきたらひとつの.dllにできちゃいました。

だんだんわかってきた

ocamloptで.cmxaを作るときにCライブラリを使いたい場合は-cclibを使う。Objective Caml\lib以下にlibxxxx.libを置く。 ocamlcで.cmaを作るときにCライブラリを使いたい場合は-dllibを使う。Objective Caml\lib\stublibs以下にdllxxxx.dllを置く。.dllを作っ…

何もしない関数

Ada

単項"+"演算子は、定数の宣言に便利です。 function PI(X : Integer := 3) return Integer renames "+"; function PI(X : Float := Ada.Numerics.PI) return Float renames "+"; これでPIと書くだけで、Integerが要求される場面では3を、Floatが要求される場…

GMP

最近ようやくタイプ量が少ないことは重要であることに気付きまして、ネイティブで型推論があってスクリプトのようにも使えるPascalに良く似た手続き型言語ことOCamlを始めようとしたのですが、MinGW版とVisualC++版はどちらがいいんだというところで詰まって…

例外

エラーコードをcaseで全列挙しているか照らし合わせるかったるいことをやってたんですが、もしエラーコードを追加するときはこの労力全部無に帰すのかよと思うと、だから継承のある言語では例外処理は継承でやってんだと超今更納得した次第です。

同士発見

http://d.hatena.ne.jp/nullpobug/20071022#c1193023687

銀猫魔天いまんとこ入ったばっか

すすんでない。なんか書いとかないと中断2週間とかになって全く思い出せないまま死ぬから困る。 やっぱここはサトリの盾を作るべきなのか。まだ倉庫にも未登録ですし。

はてなダイアリーの他人の日記でタイトルをクリックしたらソースが見えてびびった。

記事がインライン編集できるようになったのですね。テスト。

Named return

gcc

これまで散々Result変数方式やbuild-in-placeの利点を説いてきたのですが、なんとg++には既に実装済みでした。 struct result_t { int data_1; int data_2; }; result_t func() return result(1, 2) { ... }試そうとしたらとっくにremovedになってました。 …

どうでもいいが

vampire.cgiよりwf_regi.cgiの方がリクエスト数が多いって明らかに(ry Web Forum改造版のスパム対策は優秀だなあ……。

君はEQV演算子を知っているか!?

私は知りませんでした。↓の右のように書いても一緒ですし。Fortran由来でしょうか?FortranではXORも.NEQV.らしい。 A=B XOR C=D (A=B)<>(C=D) A=B EQV C=D (A=B)=(C=D) A=B IMP C=D (A=B)>=(C=D)*1 *1:BASICでは真は-1←ビット演算子で論理演算できるため大…

幽幻魔天いまんとこ16Fぐらい

に限らず仲間誰か一人ってヘイジしか有り得ないと思うのですがそうでもないのだろうか。特にここは杖をペリカンに投げて貰わないといけないし。 それにしても所持品数制限がきついな……合成の壷がおにぎり入れになる始末。階段のところにおにぎり置いてたら引…

FizzBuzz

追いついた♪ I=1 'for I=1 to 100 *F A=1 if I mod 3 = 0 then ?"Fizz";:A=0 if I mod 5 = 0 then ?"Buzz";:A=0 if A then ?I; ? I=I+1:if I<=100 goto *F 'next ...>basicll -r fizzbuzz.bas 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16…

LLVM用BASICコンパイラを書いていたり

http://panathenaia.halfmoon.jp/basicll/ Quineで3位*1を取るためだけのBASIC処理系です。まだLISTしか出力命令が無いです。LLVMで非効率となるgcc拡張構文のひとつに&&labelがあります。LLVMではローカルラベルのアドレスを取れないため、序数に対応付けて…

スプラッシュを無印のに差し替えたら"Professional"が別のとこに出てかっこ悪い対策

http://d.hatena.ne.jp/ytqwerty/20070922#p3の続き。 5. 置き換えるリソースの画像に、"Professional"の文字を本来の位置に描いておく。6. coreide100.bplのE816E9ECFFを9090909090に置換。 エディションを描画するTCanvas.TextRectの呼び出しを潰しただけ。…

2.1

出ました。 例外使えない。デバッグ情報おかしい。 しかしMinGW用バイナリが公開されているので、ビルドの必要が無くなったのが大きいです。 .aは付いてきて無いため、やっぱりLLVMはテキストで扱えということか。

C++を使わないbuild-in-placeの説明

Ada

……という説明は、C++マスターのk.inabaさんにはわかっていただけたのですが、O'Camlマスターの遠藤さんにはわかっていただけませんでした。k.inabaさんに通訳していただいたり、遠藤さんにわけわからんことをわめいているのを汲み取っていただいたり、めちゃ…

C++を使ったbuild-in-placeの説明

Ada

要するに以下が通ると思って頂戴。 struct T { void nanika(); private: T(T const &s); }; T f() { return T(); or return(T result){ result.nanika(); } } int main() { T x = f(); T *y = new f(); return 0; } return文は、呼び出しもとが使用する領域…

Lightweight Language AHP

http://dame.dyndns.org/misc/llahp/?q=BLO-P4Z0qXMKhr4&n=yt 先入観そのまんまですorz

Repl

C

http://neugierig.org/software/c-repl/ via あちこち "Repl"という名前含めて激しく既視感があるなw 仕組みはこれと同じでいいようだ。(.bplと違って).soで不足している情報はgdbからかき集めているっぽい。 まあ誰でも考えると言うことでひとつ。

猿奇魔天

相変わらず1日4Fペースで遅々として進みません。 おうごんマムルの倒し方→他のモンスターを角に挿んで妖刀かまいたち。

ここ数ヶ月読んだ本

かなり古本屋に売ったので全部では無い。漫画は割愛。割愛した漫画の方が多いです。isbn:9784087461343 どうしても比べてしまう。白夜行のほうが面白かった。 isbn:9784150102371 主人公の行動が2転3転するあたりアドベンチャーゲームに向いてると思う。 isb…

あとなんかパッチがあるらしい

http://andy.jgknet.de/blog/archives/69-Inofficial-RAD-Studio-patch.html