相关疑难解决方法(0)

感兴趣的是( - >)作为monad和functor的实例

(->)当我查阅有关(->)ghci的信息时,我非常感兴趣.它说,

data (->) a b -- Defined in `GHC.Prim`
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都那么好,但是当它说 - 时它变得非常有趣 -

instance Monad ((->) r) -- Defined in `GHC.Base`
instance Functor ((->) r) -- Defined in `GHC.Base`
Run Code Online (Sandbox Code Playgroud)

这意味着什么?为什么GHC将它定义为Monad和Functor的实例(->)

haskell

11
推荐指数
2
解决办法
271
查看次数

Haskell中的高阶OR

这是我正在考虑的一个示例问题:取每个x从1到n的总和,其中x可以被3或5整除,所以像这样:

divisible a b = rem b a == 0
sum3or5 n = sum [x | x <- [1..n], divisible 3 x || divisible 5 x]
Run Code Online (Sandbox Code Playgroud)

来自Scheme,我想使用过滤器实现这一点,如下所示:

divisible a b = rem b a == 0
sum3or5 n = sum $ filter div3or5 [1..n] where
    div3or5 n = (divides 3 n) || (divides 5 n)
Run Code Online (Sandbox Code Playgroud)

我在想,是否有一个更高阶的逻辑OR(||),所以我可以写'div3or5'无点样式,这样的东西?:

divisible a b = rem a b == 0
sum3or5 = sum $ filter (divisible 3 || divisible 5) . range
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

haskell

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

标签 统计

haskell ×2