Haskell 忽略::应用程序f=>;f a->;f()
我需要任何带有此签名的函数:Haskell 忽略::应用程序f=>;f a->;f(),haskell,applicative,Haskell,Applicative,我需要任何带有此签名的函数: ignore :: Applicative f => f a -> f () 有人能给我指一下正确的方向吗 谢谢 对于应用程序f,将fa转换为fb怎么样,您知道有什么可以帮助您的吗 在保持“外部”完好无损的同时改变“内部”值的东西 提示:应用程序也是函数。就像@Amadan在评论中说的那样,你可以通过搜索引擎轻松找到这类问题的答案。然而,这里有一些方法可以做到这一点: 您可以看到,您需要的是到常量值的映射(())。在Haskell中,这是const()
ignore :: Applicative f => f a -> f ()
有人能给我指一下正确的方向吗
谢谢 对于
应用程序f
,将fa
转换为fb
怎么样,您知道有什么可以帮助您的吗
在保持“外部”完好无损的同时改变“内部”值的东西
提示:应用程序也是函数。就像@Amadan在评论中说的那样,你可以通过搜索引擎轻松找到这类问题的答案。然而,这里有一些方法可以做到这一点:
()
)。在Haskell中,这是const()
。现在需要做的就是修改此函数,使其影响(应用程序)函子中的值。什么值使函数成为函子上的函数<代码>fmap。把所有这些放在一起,您就得到了解决方案#1:fmap$const()
(a->fb->fa
。在这里,a
是()
,所以你得到了解决方案#2:())f
,或者干脆忽略=fmap$\->(
你试过了吗
void
正好有那个签名…应用程序也是函数。忽略a=fmap(\x->())a---谢谢<代码>常量可以很好,但我更喜欢:void=fmap\\uu->()
Uhh,我不认为Applicative f=>fa->fb
有人居住(除非包括底部等等)。如果它是(称之为foo
),那么您将拥有unsacecoerce=runIdentity。福。纯粹的
。我认为@WillNess的观点是,函子f=>(a->b)->fa->fb
有人居住。@K.a.Buhr是的。我最初写的Applicative f=>fa->fb
是非正式的,但从字面上看没有什么意义。哦,我想我应该看看编辑历史。我认为@JosephSible在评论当前的编辑,认为他读得太多了。这些评论现在有意义了。