let ans = stringConcat ["<a href=","\"",str,"\"",">",strr,"</a>"]
putStr ("\nOutput :" ++show (ans))
当我打印此答案时Output :"<a href=\"www.test.com\">testing</a>"
我想知道为什么额外的\
正在打印。 \"
假设是双引号的转义码。再次打印\"
。我想知道为什么会发生这种情况,并且有没有办法将"
作为字符串...?
concat函数
stringConcat::[String]->String
stringConcat xs= concat xs
答案 0 :(得分:19)
是的,\"
是双引号的正确转义码,因此字符串ans
包含您所期望的双引号。
问题是你正在使用show
,这是一个显示Haskell代码中出现的值的函数,这意味着必须对带有双引号的字符串进行转义。
> putStrLn (show "I said \"hello\".")
"I said \"hello\"."
因此,如果您不想这样做,请不要使用show
:
> putStrLn "I said \"hello\"."
I said "hello".
答案 1 :(得分:6)
不要show
字符串。
let ans = stringConcat ["<a href=","\"",str,"\"",">",strr,"</a>"]
putStr ("\nOutput :" ++ ans)
另外,stringConcat
是什么?
答案 2 :(得分:1)
你为什么不试试这个
let ans = stringConcat ["<a href=","'",str,"'",">",strr,"</a>"]