トップ «前の日記(2007-10-22) 最新 次の日記(2007-10-27)» 月表示 編集

日々の流転


2007-10-23 [長年日記]

λ. 正格性フラグを使ってseqを定義する

たまたま気づいたのだが、正格性フラグを使えば seq を書くこともできるのだな。

data T a = T !a

seq' :: a -> b -> b
seq' a b = case T a of T _ -> b 

正格性フラグの意味を定義するのに seq を使うものは見たことがあったが、これは考えたことがなかった。 まあ、考えてみれば当たり前なんだけど。

「seqを特定の型クラスに属する型に対してしか適用できなくしよう」という意見は時々あるが、その場合には正格性フラグが用いられる型定義に関しても、同じ型クラスの文脈が必要になるだろう。しかし……

Tags: haskell