首页 文章
  • 6 votes
     answers
     views

    除了Caledon之外还有其他基于haskell的HOL编程语言吗?

    有基于高阶逻辑(HOL)的编程语言和定理证明器 . 示例包括Twelf,lambda prolog,Isabelle . 例如,Twelf既是编程语言又是定理证明者,而Isabelle主要是一个定理证明者,但是对于Isabelle代码提取是可用的 . 我正在寻找一种基于haskell的HOL编程语言 . 原因是我非常喜欢lambda prolog,但它并不是一种实用的编程语言 . Lambda ...
  • 1 votes
     answers
     views

    在编译时和运行时使用数字的最佳方法是什么?

    我刚刚开始学习Idris,我认为一个很好的小项目开始将实现有限序列作为2-3个手指树 . 树中的每个内部节点都需要在运行时进行注释,并在其下面存储元素的总数,以便支持快速拆分和索引 . 此大小信息也需要在编译时进行管理,以便(最终)证明使用适当的索引进行拆分并使用另一个序列压缩序列是总操作 . 我可以想到两种方法来解决这个问题: 我目前正在做的事情,编写了必要代码总数的一小部分:完全处理类型中...
  • 1 votes
     answers
     views

    如何在计算日期时正确处理Fin n和Integer?

    在我探索伊德里斯的旅程中,我试图以“惯用”的方式编写一个小日期处理模块 . 这是我到目前为止所拥有的 . 首先,我有一些基本类型来表示日,月和年: module Date import Data.Fin Day : Type Day = Fin 32 data Month : Type where January : Month February : Month .....
  • 19 votes
     answers
     views

    Haskell单身人士:我们用SNat获得了什么

    我正在努力培养Haskell单身人士 . 在论文Dependently Typed Programming with Singletons和他的博客文章singletons v0.9 Released!中,Richard Eisenberg定义了数据类型Nat,它用peano公理定义了自然数: data Nat = Zero | Succ Nat 通过使用语言扩展DataKinds,此数据类型将...
  • 3 votes
     answers
     views

    依赖类型的工厂方法

    我正在与Scala 2.11.7中的依赖类型进行斗争 . 以下是上下文: trait Counter { type T def zero: T def incr( t: T ): T } object IntCounter extends Counter { type T = Int val zero = 0 def incr( t: Int ) = t + 1 } ca...

热门问题