トップ «前の日記(2004-10-31) 最新 次の日記(2004-11-03)» 月表示 編集

日々の流転


2004-11-01 [長年日記]

λ. Re: 正格性解析

sum' = foldl (+) 0IntIだと余計なメモリを食わず、Integerだと余計なメモリを食ってしまう理由ですが、原因はfoldlがインライン展開されるかどうかの違いですね(GHC 6.2.1 で確認)。IntIだとfoldlがインライン展開されて、(+)の正格性に基づいた最適化がされてます。それにしても、なんでIntegerだとfoldlがインライン展開されないんだろう……

それはそうと、以下の3つの型は領域(domain)が同型なので、add (I x) (I y) = I (x + y) とかは(少なくとも理論的には)無意味だと思います。

  • data I = I !Integer
  • newtype I = I Integer
  • Integer

[追記] あうぅ。領域が同型であっても、newtypedataではパターンマッチの方のセマンティクスが違うのを忘れてました(Haskellはややこしいなぁ)。(+)がもし仮に非正格でも、この方法で定義したaddは正格になるので、意味はありますね。すんまそん。

Tags: haskell

λ. 風邪

先週末から少し調子悪いなと思ってたら、風邪をひいてしまった。今日が慶早戦による休講で助かった。

λ. ボイス

テレビでたまたまやってたので見た。原題は「폰」(phone,電話)というそのものズバリなタイトルだったようだ。題材は面白いとは思ったが、映画としての出来は大したことなかった。

Tags: 映画