相关疑难解决方法(0)

Haskell中的monadic IO构造只是一个约定吗?

Haskell中的monadic IO构造只是一个约定,还是有一个实现原因呢?

你能不能只用FFI进入libc.so而不是你的IO,并跳过IO Monad组件?

无论如何它会起作用,或者结果是不确定的,因为Haskell评估懒惰或其他东西,比如GHC是IO Monad的模式匹配,然后以特殊方式或其他方式处理它.

真正的原因是什么?最后你最终会产生副作用.那么为什么不这么简单呢?

haskell

39
推荐指数
3
解决办法
3397
查看次数

Haskell中的I/O是否具有功能性?

刚刚开始看看Haskell(我之前的FP体验是在Scheme中),我遇到了这段代码:

do { putStrLn "ABCDE" ; putStrLn "12345" }
Run Code Online (Sandbox Code Playgroud)

对我来说,这是程序式编程,如果有的话 - 特别是因为副作用的连续性.

有人请说明这段代码在任何方面都是"功能性的"吗?

io haskell functional-programming

15
推荐指数
3
解决办法
1088
查看次数

"IO`'s >>究竟是如何在引擎盖下工作的?

在向Monad初学者解释像s 这样的概念时,我认为避免任何复杂的Haskell术语或任何类别理论都是有帮助的.我认为解释它的一个很好的方法是为这个函数建立一个动机,a -> m b如下所示Maybe:

data Maybe = Just a | Nothing
Run Code Online (Sandbox Code Playgroud)

这是全有或全无.但是,如果我们有一些功能f :: a -> Maybe b并且g :: b -> Maybe c我们想要一种很好的方法来组合它们呢?

andThen :: Maybe a -> (a -> Maybe b) -> Maybe b
andThen Nothing _ = Nothing
andThen (Just a) f = f a

comp :: Maybe Text
comp = f a `andThen` g
  where f g a = etc...
Run Code Online (Sandbox Code Playgroud)

然后你可以进入说andThen可以为各种类型定义(最终形成monad类型类)......对我来说,一个引人注目的下一个例子就是IO.但是你会如何andThen为 …

io monads haskell

5
推荐指数
1
解决办法
187
查看次数

标签 统计

haskell ×3

io ×2

functional-programming ×1

monads ×1