Haskell将空字符传递给函数

Lui*_*ndo 2 string haskell char

我在Haskell中使用两个功能:

基本上我想在匹配给定字符串中的特定字符之前获取字符

这是我的代码:

before :: Char -> [Char] -> Char
before x str = trackelement x ' ' str

trackelement :: Char -> Char -> [Char] -> Char
trackelement x y (z:zs)
    | x == z = y
    | otherwise = trackelement x z (zs) 
Run Code Online (Sandbox Code Playgroud)

我的问题是当我尝试: before 'l' "luis"

答案是:(' '当然,在'l'没有任何东西之前),我想成为''Nothing

我尝试通过trackelement x '' str而不是trackelement x ' ' str但我遇到此错误Syntax error on ''str

你能给我一些建议吗?

bhe*_*ilr 5

显示的答案已经很好地使您的代码正常工作,但是它们并没有解释为什么您会收到所收到的错误。之所以显示该错误,''是因为语法无效,因为没有“空字符”之类的东西。所有字符都有值,但Strings 可以为空。请记住type String = [Char],并且很明显可以有一个空列表之类的东西,但是字符总是有值的。这相当于说您可以有一个空的Ints 列表,即[],但是您不能有一个“空int”,无论这意味着什么。