相关疑难解决方法(0)

Control.Category,>>>和<<<是什么意思?

我正在关注这个博客,在haskell中编写一个简单的http服务器,

使用情况>>>对我来说并不清楚.这段代码片段做了什么?

handleHttpConnection r c = runKleisli
    (receiveRequest >>> handleRequest r >>> handleResponse) c >>
    close c
Run Code Online (Sandbox Code Playgroud)

这个链接上,我看到了<<<

let h =     arr (++ "!")
          <<< arr foo
          <<< Kleisli bar
          <<< arr id
Run Code Online (Sandbox Code Playgroud)

做什么<<<>>>做什么?(Hackage文档非常简洁,无法解决它.)

haskell arrows category-theory function-composition category-abstractions

17
推荐指数
1
解决办法
561
查看次数

haskell中原始递归函数的良好表示

在前一个问题答案中争论说,可以在Haskell中表示原始递归函数(PRF)和single或的单个额外值的并集undefined.这个论点是基于原始递归函数的公理结构的直接翻译; 它需要一些语言扩展和关于函数arity的类型级推理.是否有可能在更惯用的Haskell中表示一组等效的原始递归函数?

理想情况下,PRF的惯用语表示应能满足以下所有条件:

  • 提供一个Category实例
  • 关于函数arity的类型级推理不需要乱七八糟

除了原始递归的要求

  • 任何undefined输入功能都undefined适用于所有输入.这将PRF集限制为单个不可避免的额外值⊥,而不是包含多个部分递归函数.这意味着while循环或类似的部分递归函数的任何定义都应该是undefined.

我注意到原始递归函数的公理就像Category法则一样,Arrow没有arr(实际上它与之相反arr),而且只有自然数才有效的有限形式的循环.

recursion haskell

4
推荐指数
1
解决办法
302
查看次数

为什么在 Haskell 中为 Curry 类考虑局部小笛卡尔封闭类别是公平的?

Control.Category.Constrained是一个非常有趣的项目,它展示了笛卡尔封闭类别的类 - Curry.

然而,我不明白为什么我们会想到所有允许curryuncurryHom(X * Y, Z) ? Hom(X, Z^Y)就范畴论而言)的笛卡尔封闭范畴。维基百科说这种性质只适用于局部小的笛卡尔封闭类别。在这个帖子下,很多人建议Hask本身并不小(另一方面,每个人都说Hask不是笛卡尔封闭类别,我认为这是一种纯粹且无趣的形式主义)。

Math.SE上的这篇文章中,假设所有类别都在本地较小。但它是从我们讨论属性的数学角度给出的。我想知道为什么我们决定专注于和as的方法。是不是因为几乎每个了解 Haskell 的人也都知道这些函数?还是有其他原因?curryuncurryCurry

haskell currying typeclass category-theory

4
推荐指数
1
解决办法
121
查看次数