腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
2
回答
Haskell
:
使用
IO
和
[]
绑定
monad
堆栈
、
、
我有:doThings :: String ->
IO
[()]stuff >>= doThings 但是我的类型是关闭的。我本质上想做一个解除
绑定
,但我尝试的每一件事都是微妙的错误。
浏览 0
提问于2016-08-15
得票数 0
回答已采纳
1
回答
如何将ST
Monad
与单台变压器结合
使用
、
、
、
haskell
transformers库提供了MonadIO类
和
liftIO来提升单个转换器
堆栈
中的
IO
操作。在我看来,ST
monad
也可以这样做,但我在任何
monad
转换器库中都找不到它。如何将ST
monad
与例如MaybeT或ReaderT结合
使用
浏览 5
提问于2022-09-19
得票数 5
1
回答
民间故事有
IO
单曲吗?
、
、
在通过
和
使用
任务之后,我想
使用
IO
monad
,但似乎找不到它。考虑到民间故事有多么丰富,我很惊讶,也不知道我是不是没看到它。 民间故事中有
IO
单曲吗?
浏览 5
提问于2015-11-08
得票数 4
1
回答
FP:捕获进程的特征,这些特征会阻塞、产生副作用并可能失败。
、
deleteFile("/tmp/file.dat")为了讨论这个问题,让我们考虑一下,这些函数遵循单一责任原则,而且modifyFile只是一个驱动程序,它“集成”并促进了操作系统、文件系统
和
web
浏览 0
提问于2015-03-26
得票数 0
2
回答
在像ExceptT这样的单一
堆栈
中管理资源的最佳方法是什么?
、
、
、
、
不管是好是坏,
Haskell
的流行的库使得在涉及ExceptT err
IO
的单台转换器
堆栈
中运行代码成为常见的地方。仆人自己的处理程序
monad
是ExceptT ServantErr
IO
。作为Ed的库 基于连续的monads,以及提供多个故障模式的ErrorT e
IO
等
堆栈
,都是此MonadMask类的无效实例。我对它不是很熟悉,但有些人说解决方案是
使用
monad
-control,很多合作伙伴库(如lifted-base<em
浏览 0
提问于2016-11-02
得票数 16
回答已采纳
1
回答
IO
是免费的
Monad
吗?
、
、
、
在
和
Mark的示例中,我第一次看到了作为构建纯代码
和
IO
代码之间边界的一种方法的免费monads。我想知道这是否重复了
Haskell
运行时已经在
使用
IO
monad
所做的工作。如果我认为
IO
不是什么特别的东西,而是一个普通的
Monad
,它的
绑定
函数>>=通过
IO
中的所有一元操作来序列“真实世界”的状态,那么这个排序本身并不提供任何计算(正如出色的答案中对免费
Monad
的
浏览 8
提问于2020-05-15
得票数 10
回答已采纳
2
回答
何时(
和
何时不)定义
Monad
、
、
这是一个与API设计实践相关的问题,用于为
Haskell
库定义您自己的
Monad
实例。我以
haskell
库的两个例子为例,它的目的是
使用
带有数据库后端的
IO
。我举的例子是用于Riak的
和
用于Redis的。在hedis中,Redis
monad
.在那里,您
使用
redis运行
IO
,如下所示:runRedis :: Connectiona wit
浏览 6
提问于2013-04-17
得票数 13
回答已采纳
1
回答
如何在不
使用
Monad
的情况下构造
和
转换
IO
操作
在"
Haskell
编程从首要原则“一书中,有人说:
Haskell
的旧实现是如何在不
使用
Monad
的情况下构造<
浏览 7
提问于2022-11-13
得票数 1
回答已采纳
4
回答
Haskell
中的异常
、
如果我理解正确的话,
Haskell
中的异常基本上是打算在
IO
monad
中处理的。至少可以在
IO
monad
内部捕获异常。然而,我不希望仅仅为了抓住可能的异常而更改函数的签名,因为在这种情况下,我必须通过调用
堆栈
更改所有函数的签名。 在
Haskell
中,是否有一些模式可以更轻松地处理异常,而不是
IO
monad
?在这种情况下,我是否应该
使用
unsafePerformIO?如何“安全”地
使用
unsaf
浏览 2
提问于2012-01-06
得票数 6
回答已采纳
3
回答
Haskell
:对`>>=`算子类型的困惑
、
、
、
我正在研究一些介绍性的
Haskell
材料,目前正在学习
Monad
。我从概念上理解,>>=运算符的类型是:main = getLine >>= \xs -> putStrLn xs 因为我们知道getLine ::
IO
String,所以我假设它可以与String ->
IO
String类型
浏览 6
提问于2014-10-14
得票数 3
回答已采纳
2
回答
如何扁平化
IO
(
IO
())?
、
、
、
我只是在学习
Haskell
和
monad
变压器,我发现自己有一个
IO
(
IO
()),我想把它压成
IO
()。我肯定我做错了什么,但不能准确地指出我迷路的地方。userInput ::
Monad
m => ReaderT (
IO
String) m (
IO
String) echo ::
Monad
m => ReaderT(
IO
String) m (
浏览 0
提问于2018-12-27
得票数 3
回答已采纳
1
回答
简化StateT单变压器中的if语句
在学习
Haskell
的基础知识时,我决定用看似简单的任务来挑战自己--编写一个程序,如果输入不是空字符串,就将用户输入推到
堆栈
中,或者弹出
堆栈
中的值,如果输入是空字符串,则将其打印给用户。如果程序试图从空
堆栈
中弹出,程序将退出。import Control.
Monad
import Control.
Monad
.Trans.C
浏览 0
提问于2018-08-13
得票数 3
1
回答
是否有合理的理由在
IO
之上构建
monad
transformer
堆栈
?
、
、
IO
在
Haskell
中很棘手。线程、FFI、异步异常、懒惰等等。为什么它会存在?如果你真的需要执行任意的副作用,为什么不构建一个自定义的
monad
IO
呢?
浏览 21
提问于2018-09-29
得票数 4
1
回答
函数式编程:副作用实际上在哪里发生?
、
、
、
、
在开始学习
Haskell
之后,即使在阅读了大量文档之后,我仍然无法理解
Haskell
中的一些东西。我知道要执行
IO
操作,您必须
使用
一个"
IO
monad
“,它将一个值包装在某种”黑匣子“中,所以
使用
IO
monad
的任何函数仍然是纯功能的。好吧,好吧,但是
IO
操作在哪里发生呢?这是否意味着
Monad
本身并不是纯功能性的?或者
IO
操作是否实现了,比如说在C中,以及
H
浏览 3
提问于2017-01-24
得票数 3
回答已采纳
4
回答
GHC不能
绑定
多态函数而不对其进行单形化。
、
在最初的代码中,人们可以看到,我只是将一个表达式提取到一个
绑定
中,这是
haskell
声称应该始终能够实现的基本内容之一。ScopedTypeVariables #-} f1 g = do l
浏览 3
提问于2019-01-21
得票数 3
回答已采纳
1
回答
如何在模板
haskell
中
使用
getQ
和
putQ?
、
、
我想用模板
Haskell
来处理Q
monad
中的状态。根据一些
堆栈
溢出的答案,有一个
使用
unsafePerformIO的解决方案,但我希望尽可能避免
使用
它。下面的代码就是我的问题的一个例子。我希望x
绑定
到(Just B),但x始终为Nothing。import
浏览 1
提问于2015-07-01
得票数 7
6
回答
有没有人在野外遇到过
Monad
Transformer?
、
、
、
在我的业务领域-金融机构的后台IT -软件组件携带全局配置,记录其进度,出现某种错误处理/计算短路,这是非常常见的……可以由
Haskell
中的Reader,Writer,或者可能是
monad
之类的东西很好地建模,并与
monad
transformers组合在一起。但似乎有一些缺点:
monad
转换器背后的概念相当棘手
和
难以理解,
monad
转换器导致非常复杂的类型签名,并且它们会造成一些性能损失。所以我想知道:在处理上面提到的那些常见任务时,
monad
tran
浏览 2
提问于2010-05-04
得票数 54
回答已采纳
1
回答
Haskell
Monads也可以
、
、
、
、
我对
Haskell
中的数据类型有一点问题,我想我应该先发布一些代码来帮助理解这个问题testexpression3 :: Expr我像这样
使用
辅助函数经过一段时间的测试后,我认为这是我所
使用
的Monads的问题。 如果我像这样测试助手函数的类型:&q
浏览 0
提问于2014-07-04
得票数 1
2
回答
Haskell
能区分不同类型的
IO
吗?
、
免责声明:我对
Haskell
的无知几乎是完美的。对不起,如果这是非常基本的,但我找不到答案,甚至是这样的问题。而且我的英语也没那么好。据我所知,如果在系统中有一个与文件系统交互的函数,则该函数必须
使用
IO
monad
,并且具有类似于
IO
()的类型。在我(仅面向业务的)经验中,系统通常与文件系统交互,以便
使用
业务数据读取/写入文件,并进行日志记录。 在商业应用程序中,日志记录无处不在。因此,如果我用
Haskell
编写了一个系统(我很长一段时间不这么做),那么几
浏览 3
提问于2014-07-11
得票数 6
回答已采纳
1
回答
Haskell
的“基于
monad
的
IO
”设计与基于标记纯/不纯代码的设计有何不同?
众所周知,
IO
Monad
在
Haskell
中将纯代码与不纯代码分开,因此像f :: ... ->
IO
?这样的签名代表了一个有副作用的操作,否则它是一个纯函数。此外,monads在
Haskell
中被用作一种纯函数机制来对操作进行排序,否则可能会被设计为仅处理纯函数的编译器意外地重新排序。围绕monads的设计的问题是,对于许多人来说,它们似乎很难理解,可能包括我自己,所以我想知道它们是否是在软件开发中区分纯代码
和
不纯代码的最佳方式。我猜想,如果我们有一种语言,所有的原语都被标记为
浏览 5
提问于2015-09-15
得票数 1
点击加载更多
热门
标签
更多标签
云服务器
对象存储
ICP备案
云点播
实时音视频
活动推荐
运营活动
广告
关闭
领券