Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 哈斯克尔写道'\n';而不是换行_String_Haskell_Newline - Fatal编程技术网

String 哈斯克尔写道'\n';而不是换行

String 哈斯克尔写道'\n';而不是换行,string,haskell,newline,String,Haskell,Newline,我有这段代码,而不是打印“\n”,我希望它将下一个字符串放在新行上,但似乎无法理解它。有什么建议吗 onSeparateLines :: [String] -> String onSeparateLines [] = "" onSeparateLines ( x:[] ) = x onSeparateLines ( x:xs ) = x ++ "\n" ++ onSeparateLines xs 我得到的是 "AAAA\nAAAA" 应该是: "AAAA" "AAAA" 给定的函数

我有这段代码,而不是打印“\n”,我希望它将下一个字符串放在新行上,但似乎无法理解它。有什么建议吗

onSeparateLines :: [String] -> String
onSeparateLines [] = ""
onSeparateLines ( x:[] ) = x
onSeparateLines ( x:xs ) = x ++  "\n" ++ onSeparateLines xs
我得到的是

"AAAA\nAAAA"
应该是:

"AAAA"
"AAAA"

给定的函数和您对“\n”的使用是正确的,因此错误肯定在别处。在不知道细节的情况下,我怀疑您正在使用(相当于)
print
而不是
putStr
来打印字符串。在打印字符串之前,请确保该字符串未被
show
n选中

如果这是在GHCi中,请注意使用
print
打印值,因此

> onSeparateLines ["foo", "bar"]
将打印字符串并显示转义字符。你想要

> putStrLn (onSeparateLines ["foo", "bar"])

相反。

我不知道为什么这一点被否决了。我们不会因为人们不了解他们的问题而对他们投反对票,是吗?毕竟,如果他们理解了这一点,他们就会自己解决它。@ReinHenrichs你完全正确。我怀疑这是拼写问题。我会修改标题并添加一些标签。@Reinhenrich的Downvote也适用于无用的问题。我觉得这个问题有点边缘化(所以我不投反对票,也不投反对票)。是的,这在终端中是有效的,但我需要它在函数中执行,所以我键入的所有内容都是>在分隔行`给出`“foo”,在下一行“bar”,我不知道你在说什么。“我需要在功能范围内执行”是什么意思?除了字符串列表之外,您不能对分隔行应用
。您必须在GHCi中使用Haskell语法,因此不能直接在分隔线“foo”“bar”上键入
。onSeparateLines自定义函数需要通过在分隔线[“foo”,“bar”]
上键入
>来工作。然后返回
>“foo”
,并在
“bar”
下面的行中,因此我认为问题在我的代码中。我试着将putStr函数放在onSeparateLines函数中,但它似乎不起作用。你不能这样做。GHCi将
打印该值。这是无法阻止的。您的函数是正确的:它将字符串列表与中间的换行连接起来。如果将
putStrLn
包含在
onSeparateLines
函数中,则它将具有不同的类型。这将是一个函数
[String]>IO()
onSerparateLines::[String]>IO()onSerparateLines=mapM\uuuu。putStrLn
是一种让It人员独立的方法。我最终到达了那里,哈哈。