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

Ruby用MathMLライブラリ

Rubyで、texの数式をMathMLに変換するライブラリ。使うかもしれないのでメモ。

foldlが無限リストを扱えない件についての確認

fold(l/r) (++) [] l という呼出で、lが無限リストの場合式を評価して最初の要素を得ようとした時に、foldlは計算が終わらないがfoldrは結果を得ることができる。これは、foldlの呼出は, (++)をf, lを[a, b, ...] とすると f (f ... (f [] a) ) . となって、…

hikiに数式を書く

http://www.hinet.mydns.jp/~hiraku/hiki/hiki_x-math.rb.htmlを使えば、hikiwikiで数式を書けるようになる。 数式はmathMLで出力される。

irbの補完機能

ホームディレクトリの .irbrc に require 'irb/completion' としておくと、TAB2回押しで変数とかメソッドとかの識別子候補を表示してくれる。あと、こういうのもある。 RubyGemsでインストールして .irbrc に # load libraries require 'rubygems' require '…

パターンの合成

こんな書き方ができたのか let f = function Some (0 | 1) -> true | _ -> false

「論理学を作る」1章・2章

1章 イントロダクションのイントロダクション。論理学とは何をする学問かについての章。論理学では、論証の妥当性は形式(form)で決まり、論証の内容(content)にはよらない。 つまり、 犬は爬虫類である。爬虫類は卵から生まれる。したがって、犬は卵から生…

やさしい Haskell 入門 8章 読了

この章はモナドの話。とりあえず、モナドまだ裏でごにょごにょと 計算をつないでくれるという感覚もてない。Stateモナドの型は state -> (state, value) という型になっていて、(>>=)はstateの接続を裏でやってくれる。

CLRは.NET3.5でも2.0

http://itpro.nikkeibp.co.jp/article/NEWS/20061207/256333/

Bjarne Stroustrupインタビュー

http://slashdot.jp/~El-ahrairah/journal/384164

Hiki

Hikiを導入してみた。 シンプルでいい感じ。備忘録に使っていくつもり。

Haskell

OCamlが普通の言語にしか思えなくなったのでHaskellを始めてみる。

Private types

型の値の生成を禁止する場合に使う。型の値の生成を禁止するだけなので、値を取り出したり、 パターンマッチしたりはできる。 ほとんどの場合、モジュールのシグネクチャで使うことになる。 private typeはvariantかレコードに対して指定できる。

Recursive definitions of values

関数の再帰は良くやるけど、値に対しても再帰を使って定義できる。 #let rec a = 1 :: 2 :: a val a : int list = [1; 2; 1; 2;1 ;2 ... ]let rec a = a + 1とかは書けない。リスト、配列、タプル、レコード、遅延、などの場合は定義できる。詳しくはマニュ…

[OCaml] パターンマッチの順番

OCamlのコンパイラはパターンマッチをおこなう順番を入れ替えている。 リストの場合、 [] -> h :: t -> というパターンマッチがあると、ふたつを入れ替えても[]を先にテストする。optionはNoneを先にテストする。 コンストラクの宣言順は関係あるきがするけ…

細分割曲面

3D

仕事で3Dメッシュを補間して滑らかにする必要があるので調べてみると、再分割曲面(サブディビジョンサーフェイス)という手法を知った。 Catmull-Clarkという手法が有名で、手法は以下。 再分割後の頂点は 1. face point(F): 面の構成する頂点の平均値 2. e…

Leftist Heap

Leftist Heapはヒープに加えて以下の制約が加わったLeftist Treeという構造を持つ。 rank(left child) >= rank(right child) rankとはright spineの長さ(右にだけ降りていったときの最後の接点までの長さ)のことである。 Leftist Treeは要素数nならば rank…

最近バイトでDirectXを触っている。何年か前にDirectXを勉強しようとして 挫折したことがあったけど今回は結構すらすらわかる。 一年前にわからなかったことをいま勉強すると理解できるようになることがあるけど、 その時は自分が成長したなぁと思ってうれし…

C言語風のループ

OCamlの標準のforループは指定回数だけループする機能しかない。ループは再帰で書けということだと思うけど、そういう再帰関数の中には副作用を持つ操作をなるべく含めたくなし、breakするにも書きにくい。 そこで、C言語風のforループを書ける構文拡張を作…

try-with-finally

camp4が使えるようになりたいと思っていたので 向井さんの訳された http://www.jmuk.org/~mukai/camlp4tut.html を読ませてもらう。はじめはよくわからないけど、読み進めていくうちになんとかわかってきた。そこで、p4ckで配布されているpa_tryfinally.mlを…