咋理解Boehm-Berarducci Encoding?
Boehm-Berarducci Encoding能将strictly positive的代数数据类型编码到System F中。举个在很多相关paper中很常见的例子:data List a = Cons a (List a) | Nil-- Boehm-Berarducci Encodingtype List a = forall x . (a -\u0026gt; x -\u0026gt; x) -\u0026gt; x -\u0026gt; x这里定义了一个List,首先第一个通过algebraic data type的形式recursively的定义了List。第二个是将其编码成Boehm-Berarducci Encoding的形式。然后可以将具体的operation也进行编码:-- Constructionfoo :: List Intfoo = Cons 0 (Cons 1 Nil)-- Boehm-Berarducci Encodingfoo :: List Intfoo :: \\cons nil -\u0026gt; cons 0 (cons 1 nil)-- Pattern Matchingmap :: (a -\u0026gt; b) -\u0026gt; List a -\u0026gt; List bmap f Nil = Nilmap f (Cons a l) = Cons (f a) (map f l)-- Boehm-Berarducci Encodingmap :: (a -\u0026gt; b) -\u0026gt; List a -\u0026gt; List bmap f l = \\cons nil -\u0026gt; l (\\a x -\u0026gt; cons (f a) x) nil 【咋理解Boehm-Berarducci Encoding?】 参考:
Boehm-Berarducci EncodingAn intermediate language for super-optimizing functional programs
推荐阅读
- 学图像处理有哪些不错的书推荐
- 应该怎样理解会员服务的法律性质
- 读书读到3分之一的时候感觉很难理解,要不要继续
- 怎样简洁到位地让外国人理解中文互联网文化中的「屌丝」、「喷子」、「五毛」、「水军」、「公知」等词
- ActiveMQ、MQTT的方式进行Android消息推送,我的理解是否正确
- 讲座|启东系统培训帮助老师和家长更好理解孩子
- 设计师应该咋快速理解程序,我很想学好程序,但没咋理解程序是咋实现的,大部分教程都是教写的过程
- 复习|七年级英语期末阅读理解专项复习5篇及答案解析
- 图像的傅里叶变换的理解问题
- 白夜追凶2|《白夜追凶》或没有第二部,导演透露不打算再拍了,网友:理解
