首页 文章
  • 2 votes
     answers
     views

    教会编码F#免费monad

    我试图在F#中表达Free monad的教会编码 . Free 专门用于特定的仿函数 Effect . 我能够写出 return_ : 'T -> Free<'T> 和 bind: ('T -> Free<'U>) -> Free<'T> -> Free<'U> 没有任何问题 . 我的实现草图如下 . type Effe...
  • 14 votes
     answers
     views

    折叠Haskell中的多态列表

    我有一个记录集合,分布在大型Haskell应用程序中的多种类型中,它们相互引用 . 涉及的所有类型都实现了一个共同的类型类 . 类型类包含对变量及其所有子项起作用的函数,非常类似于uniplate的para函数 . 这是我想要构建的简化代码示例 . 是否有可能(并且合理)获得通用功能来折叠在GHC中实现给定类型类的记录字段... {-# LANGUAGE RankNTypes #-} myPar...
  • 21 votes
     answers
     views

    什么是类型量词?

    许多静态类型语言具有参数多态性 . 例如在C#中,可以定义: T Foo<T>(T x){ return x; } 在呼叫站点中,您可以: int y = Foo<int>(3); 这些类型有时也像这样写: Foo :: forall T. T -> T 我听过有人说"forall is like lambda-abstraction at the t...
  • 3 votes
     answers
     views

    如何表达功能类型?

    我目前正在阅读关于在Haskell http://www.cs.nott.ac.uk/~pszgmh/monparsing.pdf中解析组合子的Hutton 's and Meijer'论文 . 为此,我试图在scala中实现它们 . 我想构建一些易于编码,扩展且简单而优雅的东西 . 我已经为以下haskell代码提出了两个解决方案 /* Haskell Code */ type Parser a...
  • 1 votes
     answers
     views

    Scala中更高级/类型绑定的益智游戏

    当我遇到这个问题时,我试图用更高种类和类型的边界来玩 . 我的用例是我希望能够使用Request的任何子类型或Request类型本身来参数化GenericAction实例 . Action trait使用默认类型Request扩展GenericAction特征(在这种情况下,只生成Request的匿名实例) . trait Request[+A] trait GenericAction[A, ...

热门问题