首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘`arr’是一种自然的转变吗?

‘`arr’是一种自然的转变吗?
EN

Stack Overflow用户
提问于 2020-08-28 18:43:24
回答 2查看 233关注 0票数 3

不久前我问过这个问题。它是关于以下箭头定律的:

代码语言:javascript
复制
arr fst . first f = f . arr fst -- (.) :: Category k => k b c -> k a b -> k a c

在文章下面的注释中,Saeeduddin自然转换解释了它。我想检查一下他们的解释是否正确,并将其与Bartosz Milewski关于自然变换的文章进行比较。

因此,自然转换的定义如下:

我们有两类CD以及函子F, G : C ~> D。自然转换αD中的一系列箭头,因此:

  1. 这些箭头从F的结果到G的结果。也就是说,对于C中的每个对象,都有一个箭头(称为 a) at a) α_a :: F a ~> G a组件)。
  2. 对于每一个f :: a ~> bab都是C中的对象,持有:Gf . α_a = α_b . Ff。这就是自然性。

基本上,我们需要计算出我们的例子中的四个变量:CDFG

据我所知:

  • CD是相同的任意类型,其中k a b是箭头,其中k是我们使用的Arrow实例。因此,FG是内毒素。
  • F(, c)GIdentity。换句话说,如果我们不再使用类型,我们将F映射为firstG映射为id。如果和Arrow类帮助我们构造类别的箭头,而不是对象,那么从类型的角度来考虑可能更容易一些,而不是Arrow

是这样的吗?

此外,巴托斯·米列夫斯基把这些想法写下来了喜欢这样:

代码语言:javascript
复制
fmap f . alpha = alpha . fmap f

据我所知,为了我们的目的,我们需要一个更通用的形式,因为在这里,alpha :: forall a. F a -> G a只将Hask作为它所使用的类别来处理。还是我错了?fmap在这张照片上有什么地方?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-06 01:17:19

据我所知:

  • CD是相同的任意类型,其中k a b是箭头,其中k是我们使用的Arrow实例。因此,FG是内毒素。
  • F(, c)GIdentity。换句话说,如果我们不再使用类型,我们将F映射为firstG映射为id。..。

是的,就是这样。kcarr fst :: k (b, c) b中的每一种选择都给了我们在k-category中的(, c)内切函数和身份函子之间的自然转换。进行专业化给了我们一个更明显的特征,它看起来更像是一种自然转变的特征:

代码语言:javascript
复制
arr @K (fst @_ @C) :: forall b. K (b, C) b

此外,巴托斯·米列夫斯基把这些想法写下来了喜欢这样: fmap f.阿尔法=阿尔法fmap f 据我所知,为了我们的目的,我们需要一个更通用的形式,因为在这里,alpha :: forall a. F a -> G a只将Hask作为它所使用的类别来处理。还是我错了?fmap在这张照片上有什么地方?

同样正确。对于涉及到的函子,fmap必须被适当的态射映射所取代。在您的例子中,这些恰好是firstid,正如您之前注意到的,这使我们回到了我们开始使用的箭头定律。

(至于替代fmap,从特定函子态射映射中抽象出的Functor方法,用一个更一般的类似物来表示,这需要作出适当的安排,以便我们可以在Haskell代码中表示涉及非Hask范畴的函子。您可能想看看http://hackage.haskell.org/package/constrained-categories-0.4.1.0/docs/Control-Functor-Constrained.htmlhttps://hackage.haskell.org/package/data-category-0.10/docs/Data-Category-Functor.html如何处理这个问题。)

票数 1
EN

Stack Overflow用户

发布于 2020-08-28 19:13:55

您不需要担心额外的类别,因为arr fst不涉及任意的Arrow,而是它的(,)实例。

在Haskell中,f a -> g a型函数对于某些函子fc是一种自然变换。在arr fst :: (b -> c) -> (b, c)的例子中,让f ~ (->) bg ~ (,) b

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63639328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档