当前位置: 首页 > 知识库问答 >
问题:

是否可能实现`(Applicative m)=>Applicative(StateT s m)`?

姬庆
2023-03-14
instance (Functor m, Monad m) => Applicative (StateT s m) where
    pure = return
    (<*>) = ap
instance (Applicative m) => Applicative (StateT s m) where

共有1个答案

梁丘飞鸾
2023-03-14

考虑您有两个功能:

 f :: s -> m (s, a -> b)
 g :: s -> m (s, a)

您希望创建函数h=StateT f<*>StateF g

 h :: s -> m (s, b)

从上面的代码中,您有一个s可以传递给f,因此您有:

 f' :: m (s, a -> b)
 g :: s -> m (s, a)
 类似资料:
  • 访问 xxx_m.jpg 或 xxx_m.jpeg ,如果返回 404 或 403 ,则重定向到 xxx.jpg 或 xxx.jpeg 可以理解为实现“访问压缩图 url ,如果 访问不到,则重定向原图 url” 问了 AI ,回答我是可以实现的,但是运维同学说实现不了,不确定 AI 是不是瞎扯的,有没有大佬解答下。 下面贴下 AI 给的配置:

  • 所以我有这段代码,但在我实际使用它之前,我无法知道函数需要多少参数 有没有可能修改这个函数,让它允许我插入我需要的参数?

  • 但是现在,我希望这些接口实现也可用于扩展,例如。 我如何设置我的课程来实现这一点?(或者,反对这样做的固有缺陷或代码气味是什么?)

  • 我计划开发一个基于web的聊天应用程序,它接收ReSTful请求,将它们转换为XMPP,并将它们发送到XMPP服务器。 在这种基于聊天的应用程序中使用WebSocket看起来很有希望,因为事件(或响应)可以异步传递。但是,如果我使用WebSocket作为从浏览器传输请求的底层协议,这仍然可以被视为ReSTful设计吗?如果是的话,URI、动词(GET、POST…)是怎样的,websocket消息中

  • 问题内容: 可以在太长的句子中添加省略号 这对宽度非常有用,但是否也可以垂直添加省略号呢?那似乎不起作用 有人知道吗,谢谢。 问题答案: 当前,没有跨浏览器的仅CSS方式可以实现这种行为。 您现在只能通过使用和在基于Webkit的浏览器中执行此操作

  • 问题内容: 在 UNIX到Windows移植词典HPC 页的叉()这是写 没有与Unix fork()或vfork()等效的Windows API。用于基于Unix的应用程序的Microsoft子系统(SUA或Interix)是一个Unix环境,具有正确实现的fork()和vfork()。 在页面的后面还有使用标准Win32 API 函数的示例源代码。 我糊涂了。 该示例不应该使用fork()来说