摘要:
前面给了一个Product的等价表示,还有一种是Sum的。同样的先给出两种表示。表示:data S a b = L a | R b等价的表示:newtype S' a b = S' { unS' :: forall r. (a -> r) -> (b -> r) -> r }证明:这里对于S’,f... 阅读全文
摘要:
这里我想讨论下一些haskell类型的等价表示。对于一个类型我们可以给出不同的表示。通常我们会使用所谓代数数据结构,但是其实那不是必须的。我们需要的是函数,以及RankNTypes。表示:通常我们使用data定义一个product如下。data P a b = P a b等价的我们可以用一个函数类型... 阅读全文