【问题标题】:Design patterns for static type checking [closed]静态类型检查的设计模式
【发布时间】:2011-07-30 19:36:59
【问题描述】:

我目前正试图弄清楚我的程序的哪些方面可以由 scala 编译器进行静态类型检查。在阅读了this question 之后,我想到了类型设计模式的想法。我发现了解 Scala 的类型系统可能实现的功能非常复杂。所以我想看看实际用法(不是 peano 算术或类似的东西)。在普通代码中经常出现的简单模式。

有没有人知道任何处理这个问题的博客甚至书籍?最好在 Scala 中使用,但它也可能对其他语言有用。

【问题讨论】:

  • 为什么这个标签是 Haskell?这些链接可能感兴趣:blog.ezyang.com/2010/08/…blog.ezyang.com/2010/08/type-kata-newtypes
  • @Edward 因为 Scala 的类型系统似乎与 Haskell 的类型系统相似,并且 Haskell 的模式(已经存在较长时间)可能会转移到 Java。
  • @Edward 我认为这是有效的,因为 Scala 类型系统最冒险的实验似乎来自具有 Haskell 背景的人,例如Rúnar 的博客和 Scalaz 人。
  • 如果能有一些关于这个的内容非常广泛,甚至是一本书,那就太好了。现在有很多 Scala 的初学者书籍,我认为需要一本高级书籍来完全解决这个问题,静态类型编程的设计模式

标签: design-patterns scala haskell types


【解决方案1】:

我认为“设计模式”这个名字最有用的东西之一就是“幻象类型”技术。在类型参数中编码静态信息是一种或多或少系统化的方法。看一些例子:

您可能还对一个相关的 Oleg Wondertrick 感兴趣:Lightweight static capabilities(与 Chung-chieh Shan)。

【讨论】:

【解决方案2】:

你可以看看the design advice for Haskell,特别是一些关于将强属性嵌入类型系统的最新研究论文:

  • 让库里-霍华德发挥作用 Tim Sheard,2005 年 ACM SIGPLAN Haskell 研讨会论文集。爱沙尼亚塔林,74 - 85 岁,2005 年
  • 通过表达类型进行基于语言的程序验证 马丁·苏兹曼和拉兹万·沃伊库。编程语言符合程序验证 (PLPV'06)
  • 用于函数式编程的类型化合同 Ralf Hinze、Johan Jeuring 和 Andres Loh。
  • Haskell 中的轻量级信息流安全库 A Russo、K Claessen、J 休斯。

这里还没有标准的方法,尽管有很多很好的个别问题的例子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2010-11-23
    相关资源
    最近更新 更多