Haskell [String]->;中的非穷举模式;一串

Haskell [String]->;中的非穷举模式;一串,haskell,Haskell,所以我创建了一个类似这样的函数: unlinhas::[String]->String uninhas [x] = "" unlinhas (x:xs) = x ++ "\n" ++(unlinhas( xs)) 给定像这样的字符串列表,[“arroz”,“atum”]应该给出“arroz\natum\n”,问题是我创建的这个函数表示非穷举模式。您的第一个模式[x]是一个带有一个元素的列表。因此Haskell编译器想知道如何处理空列表 此外,在第一行中,您编写了uninhas,而不

所以我创建了一个类似这样的函数:

 unlinhas::[String]->String
 uninhas [x] = ""
 unlinhas (x:xs) = x ++ "\n" ++(unlinhas( xs))

给定像这样的字符串列表,
[“arroz”,“atum”]
应该给出
“arroz\natum\n”
,问题是我创建的这个函数表示非穷举模式。

您的第一个模式
[x]
是一个带有一个元素的列表。因此Haskell编译器想知道如何处理空列表

此外,在第一行中,您编写了
uninhas
,而不是
uninhas
,因此Haskell编译器认为您编写了两个不同的函数

但是,根据您的规范,您希望处理空列表,因此可以使用以下方法修复它:

unlinhas:: [String] -> String
unlinhas [] = ""
unlinhas (x:xs) = x ++ "\n" ++(unlinhas( xs))
unlinhas::[String]->String
取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消
unlinhas(x:xs)=x++“\n”++(unlinhas(xs))
您可以进一步清理代码,并将其编写为:

unlinhas:: [String] -> String
unlinhas [] = ""
unlinhas (x:xs) = x ++ '\n' : unlinhas xs
unlinhas::[String]->String
取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消

unlinhas(x:xs)=x++“\n”:unlinhas xs
您的第一个模式
[x]
是一个包含一个元素的列表。因此Haskell编译器想知道如何处理空列表

此外,在第一行中,您编写了
uninhas
,而不是
uninhas
,因此Haskell编译器认为您编写了两个不同的函数

但是,根据您的规范,您希望处理空列表,因此可以使用以下方法修复它:

unlinhas:: [String] -> String
unlinhas [] = ""
unlinhas (x:xs) = x ++ "\n" ++(unlinhas( xs))
unlinhas::[String]->String
取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消
unlinhas(x:xs)=x++“\n”++(unlinhas(xs))
您可以进一步清理代码,并将其编写为:

unlinhas:: [String] -> String
unlinhas [] = ""
unlinhas (x:xs) = x ++ '\n' : unlinhas xs
unlinhas::[String]->String
取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消取消

unlinhas(x:xs)=x++“\n”:unlinhas xs
如何处理空列表?首先,我将unlinhas[]=”,但函数甚至不会加载,所以我尝试了当有1个元素时这是什么样的调试?“我不知道怎么回事,所以我只是用随机的东西更改了几行,希望它能突然起作用”?我相信你知道这一点,但这本质上只是
取消行
(取消行也会跟踪一个新行,所以它实际上只是
初始化.取消行
)你怎么处理这个空列表?首先我把unlinhas[]=”,但是函数甚至无法加载,所以我尝试了当有1个元素时这是什么样的调试?“我不知道怎么回事,所以我只是用随机的东西换了几行,希望它会突然起作用”?我相信你知道这一点,但这本质上只是
取消线
(取消线也跟着一条新线,所以它实际上只是
初始化。取消线
)thx它的工作原理是这样的,它们之间的区别是什么?”那么“”?@JoaoParente:那是因为你对第一个子句的命名不同。现在已经修复。@JoaoParente
“a”
'a'
之间有什么区别?请在GHCI中查看。@JoaoParente对,所以
是空字符串
[]:[Char]
,而
将是空字符(这不是一件事,只是一个错误)。而且@WillemVanOnsem不能在每条评论中提及一个人。顺便问一下,它们之间的区别是什么那么“”?@JoaoParente:那是因为你对第一个子句的命名不同。现在已经修复。@JoaoParente
“a”
'a'
之间有什么区别?请在GHCI中查看。@JoaoParente对,所以
是空字符串
[]:[Char]
,而
将是空字符(这不是一件事,只是一个错误)。而且@WillemVanOnsem不能在每条评论中提及一个人