2014-04-18

分けて書くときは分けて書いたほうがいいのかもしれないけど、タイトルが日付の様式は崩したくないので、中で分ければいいのであって……。

雑記 [IS, programming]

 OCamlコンストラクタがよくわからない。オブジェクト指向言語ばかりやってた私にとっては(と言ってもC#とかVB.NETだけど)コンストラクタというのはクラスからインスタンスを作るときに呼び出されるメソッドのことなんだけど、関数型のこの子にとっては違うらしい。だからわからないというわけではないのだけど、微妙だなぁと思っていろいろ調べていた。
 一口に言えばOcamlコンストラクタは「ラベル・タグ」なのだと思う(今スライド見たらそう書いてあったし)。んでofでその型の中身を記述する。でもってヴァリアント型というのはC系の言語における構造体(struct,structure)の1要素バージョンなのであって、Objective Caml 入門のChapter6で説明されていることそのままだった。そもそも私がCのunionを知らなかったのが悪い。あと、C++11で覚醒した共用体の話 — 京大マイコンクラブ (KMC)にあるように、「構造体は各メンバの情報をメモリ上に順に並べて保持」して、「共用体は各メンバの情報をメモリ上の同じ位置に重なるようにして保持」する。これがそのままOCamlにおけるレコードとヴァリアントに相当している。
 よくみるとこれも演習のスライドに書いてあった。だめじゃん。ちゃんと読もう。理解できたのでよかったです。何も説明せずにラムダ計算の記述させるのかーと思ったのだけど、そこまで変なことやってなかった。

日記

 現実逃避して早朝まで漫画を読んでいた(僕らは~から始まるやつ)。大学に行きたくないと思って2,3限を寝飛ばして4限にだけ出てそのあとはアルバイトに行った。のんびり作業。ときどき凡ミス。

広告を非表示にする