小编use*_*428的帖子

为什么Char有一个Bounded实例?

为什么会出现maxBoundChar?如果Char是字符,那么为什么它用数字解释,如果它不是数字是什么意思?

> maxBound :: Char
'\1114111'
Run Code Online (Sandbox Code Playgroud)

haskell

7
推荐指数
1
解决办法
1127
查看次数

写入max函数时输入错误

max' :: Int -> Int -> Int
max' a b = if a >= b then a else b 
Run Code Online (Sandbox Code Playgroud)

你看到函数是正确的,但如果我写

let a = 3,
let b = 3
Run Code Online (Sandbox Code Playgroud)

如果我写的话

ghci> a == b => True
Run Code Online (Sandbox Code Playgroud)

所以它比较了它们为什么它在我的功能中没有比较

ghci> max' a b 
Run Code Online (Sandbox Code Playgroud)

错误发生的原因?或者写它的正确方法是什么?

对不起,我是初学者,如果我的问题是愚蠢的原谅我并编辑它,如果有需要,谢谢

<interactive>:19:6:
    Couldn't match expected type `Int' with actual type `Integer'
    In the first argument of max', namely `a'
    In the expression: max' a b
    In an equation for `it': it = max' a b

<interactive>:19:8:
    Couldn't match expected …
Run Code Online (Sandbox Code Playgroud)

haskell

4
推荐指数
1
解决办法
203
查看次数

什么时候使用类型类?

通常当我创建函数时,我不知道在哪些函数中使用类型类(等等)更好Eq,Integral因为有时候不需要像以下那样使用它们:

factorial :: Int -> Int 
bla bla bla 
bla bla bla
Run Code Online (Sandbox Code Playgroud)

factorial :: (Integral a) => a -> a
bla bla bla
bla bla bla
Run Code Online (Sandbox Code Playgroud)

我相信第二个只是花时间和地点但是在elem函数中写入是很重要的Eq(下面ellemeelem)

elemme :: Eq a => a -> [a] -> Bool
y `elemme` [] = False
y `elemme` (x:xs) = if y == x then True else y `elemme` xs 
Run Code Online (Sandbox Code Playgroud)

请告诉我一些事情.谢谢.

haskell

2
推荐指数
1
解决办法
186
查看次数

长度l1 +1 =>一个用于什么?

agrupa :: String -> [(Char,Int)]

agrupa [ ] = [ ] 

agrupa (x:xs) = let (l1, l2) = span' (==x) xs  

                in (x, (length l1) + 1) : agrupa l2 

span' :: (a->Bool) -> [a] -> ([a],[a])

span' p l = (takeWhile p l, dropWhile p l)
Run Code Online (Sandbox Code Playgroud)

这个函数得到一个字符串,并给我们每个字符有多少?

我的问题是有关1(length l1) + 1,我们为什么需要它?如果你用不同的例子解释它,我真的很感激,因为这样的情况(比如+ 1)我在扫描中已经看过很多次(或者只调试agrope部分)这个功能看看它是如何工作的?

谢谢你的时间

haskell

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

标签 统计

haskell ×4