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