相关疑难解决方法(0)

有人可以解释Haskell中的遍历函数吗?

我正在尝试并且未能完成该traverse功能Data.Traversable.我无法理解其观点.由于我来自一个势在必行的背景,有人可以根据命令性循环向我解释一下吗?伪代码将非常感激.谢谢.

haskell traversal

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

为什么applicative functor有副作用,但是functor不能?

我觉得这个问题很傻,但是我已经想到了一段时间,我找不到任何答案.

所以问题是:为什么应用仿函数有副作用,但仿函数不能?

也许他们可以而且我从未注意到......?

monads haskell side-effects applicative

16
推荐指数
2
解决办法
1888
查看次数

Haskell中的S组合子

S组合器的模拟是否可以仅使用标准函数(不通过公式定义)并且不使用lambda(匿名函数)在Haskell中表示?我期待它的类型(a -> b -> c) -> (a -> b) -> a -> c.

例如,K组合器的模拟就是const.

实际上我试图\f x -> f x x用标准函数来表达函数,但是不能想到任何标准的非线性函数(这是一个多次使用它的参数的函数).

haskell combinators s-combinator

16
推荐指数
2
解决办法
2286
查看次数

如何使用Applicative处理副作用?

我看到处处Applicative可以处理副作用,但我见过的所有简单例子都是将各种东西组合在一起,如:

> (,,) <$> [1,2] <*> ["a", "b", "c"] <*> ["foo", "bar"]
[(1,"a","foo"),(1,"a","bar"),(1,"b","foo"),(1,"b","bar"),
 (1,"c","foo"),(1,"c","bar"),(2,"a","foo"),(2,"a","bar"),
 (2,"b","foo"),(2,"b","bar"),(2,"c","foo"),(2,"c","bar")]
Run Code Online (Sandbox Code Playgroud)

哪个很酷,但我看不出它与副作用有何联系.我的理解是,它Applicative是一个弱单子,所以你可以处理副作用(就像你对State monad一样),但你不能重复使用前一个副作用的结果.

这是否意味着>>可以写出Applicative类似的东西

do
  print' "hello"
  print' "world"
Run Code Online (Sandbox Code Playgroud)

会有意义(有print' :: a -> Applicative something)(使用适当的do-applicative扩展名).

在另一个世界,之间的区别Monad,并ApplicativeMonad允许x <- ...,但Applicative没有.

然后,是作家monad,只是一个应用程序?

monads haskell applicative

6
推荐指数
2
解决办法
346
查看次数

Haskells 绑定运算符和 &gt;&gt; 运算符及其关系

我最近发布了一个关于>>操作员的问题,因为尽管我已经阅读了 LYAH walk the linee 部分,但我的理解仍然存在一些差距。下面是我偶然发现的一些代码/MVE,因为它们引发了以下思考。我怎么能得到代码后面的输出?是否不会出现没有向绑定运算符提供参数的情况,因此无法str连接任何参数,否则它们会使用>>=定义中所示的绑定,并且结果不应该与预期的不相似结果如下:

import Control.Monad
import Data.List

data Value =
    NoneVal
  | IntVal Int
  | ListVal [Value]
  deriving (Eq, Show, Read)

data RErr = EBVar String  | EBInt Int
  deriving (Eq, Show)

newtype Compuptaton a = Computation {runComputation :: [(String, Value)] -> (Either RErr a, [String]) }

instance Monad Computation where
  return a = Computation( \_ -> (Right a, []))
  m >>= f = Computation(\env -> case runComputation m env of …
Run Code Online (Sandbox Code Playgroud)

monads haskell functional-programming side-effects

0
推荐指数
1
解决办法
144
查看次数