小编jaz*_*iac的帖子

试图创建一个函数,它接受一个列表并返回与其第一个元素相同的所有元素的列表,但我的函数不起作用

特别是一个字符串.所以它会采取["so", "what", "and", "so", "for" "so"]并返回["so", "so", "so"].我的问题是我的函数返回一个与输入的列表相同的列表.

这是所有相关的代码:

lookAhead :: [String] -> String
lookAhead [] = []
lookAhead (c:cs) = c

groupFirst :: [String] -> [String]
groupFirst [] = []
groupFirst (x:xs) 
    | lookAhead xs == x  = x : (groupFirst ((lookAhead xs):(tail xs)))
    | lookAhead xs /= x  = x : (groupFirst xs)
    | lookAhead xs == [] = x : []
Run Code Online (Sandbox Code Playgroud)

haskell list

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

如何在Haskell中使用数据类型返回多个类型的函数?

所以在我的代码中,我将数据类型Token声明为:

data Token = Char | Int
deriving (Show,Eq,Ord)
Run Code Online (Sandbox Code Playgroud)

和声明为的函数readIfNumber

readIfNumber :: Char -> Token 
readIfNumber a 
    | isDigit a = Token (digitToInt a)
    | otherwise = Token a
Run Code Online (Sandbox Code Playgroud)

但是当我尝试编译时,根据我的Token声明,控制台返回错误"期望类型令牌,但得到Char"或"期望令牌,但得到Int",当Int应被视为令牌时.我在这做错了什么?

haskell

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

标签 统计

haskell ×2

list ×1