トップ «前の日記(2006-09-12) 最新 次の日記(2006-09-14)» 月表示 編集

日々の流転


2006-09-13 [長年日記]

λ. カクレカラクリ

期待してたけど、つまらなかった。 栗山千明は結構似合っていたと思うが。

Tags: TV

λ. Pangoで縦書テキストが表示可能に

射撃しつつ前転 (2006-09-13)より。素晴らしい。

以前に「starts at bottom of page」というエントリでは「縦書きの日本語の中にアラビア文字を埋め込む時には、改行方向を合わせるために下から上へ書く気がする」と書いたけど、リンク先のスクリーンショットではアラビア文字を上から下へと書いているな。実際の例を見たことがないので、どちらが正しいかは知らんけど……

【追記】……とか書いていたら、小熊さんから「左縦書きのモンゴル語(蒙古文字)にローマンアルファベットが混じる場合」の事例が。 ありがとうございます。

λ. Haskellのリストとはそもそも何者かという問題

Haskellの代数的データ型の解釈は、OCamlのような正格な言語での解釈よりも確かに複雑だけど、使っていて悩んだ経験はあまり無い。そもそも、Haskellのデータ型にどんな値が存在するかを考えるときに、いちいち領域理論を使って考えたりしないし。……複雑に感じるかどうかには慣れの問題も大きいのではないかと思います。

OCamlでのリスト型の領域は⊥を除けば、全ての有限リストのみからなる集合、すなわち帰納的に定義される集合になっている。一方、Haskellでのリスト型の領域は「⊥を含む値」を除けば、全ての有限および無限のリストからなる集合、すなわち余帰納的に定義される集合になっている。したがって、始代数になっているかはさて置き、帰納的というよりは余帰納的なものとして理解したほうが良いと思います。

ところで、<URL:http://d.hatena.ne.jp/taisuke_h/20060827#1156687935> によると、OCamlでも無限リストがリスト型に属するようです。ということは、きちんと意味論を考えるのならOCamlの場合にもHaskellと同様の領域を考えなくてはいけないような……。それとも「lazy」はHaskellでの「unsafe〜」のように意味論を無視したバックドアなのでしょうか……

【追記】 <URL:http://d.hatena.ne.jp/yoriyuki/20060915/p1> で、Lazyモジュールは型が変わるので問題ないとの指摘。うわー、恥ずかしいことを書いてしまったー orz

【さらに追記】 いや、lazyについては間違いだったけど、「let rec a = 1 :: 2 :: a」は結局無限リストになるのだから、無限リストを含む領域を考えなくてはならないというのは変らないはず。

【追記】 sumiiさんの人から借りてきた2セントも参照のこと。

Tags: haskell