首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haskell +将字符串输出为字符串类型

Haskell +将字符串输出为字符串类型
EN

Stack Overflow用户
提问于 2016-01-12 04:18:38
回答 1查看 169关注 0票数 1

我已经编写了一个基本的递归函数:

代码语言:javascript
复制
bibliography_rec :: [(String, String, Int)] -> String
bibliography_rec [] = ""
bibliography_rec (x:xs) = (citeBook x) ++ "\n" ++ (bibliography_rec xs)

citeBook只是将元组重新格式化为字符串。

当使用此输入运行时:

代码语言:javascript
复制
ghci> bibliography_rec [("Herman Melville", "Moby Dick", 1851),("Georgy Poo", "Alex Janakos", 1666)]

它产生:

代码语言:javascript
复制
"Moby Dick (Herman Melville, 1851)\nAlex Janakos (Georgy Poo, 1666)\n"

我需要逐行打印,所以我使用了以下代码:

代码语言:javascript
复制
bibliography_rec (x:xs) = putStr ((citeBook x) ++ "\n" ++ (bibliography_rec xs))

我的问题是我的输出需要是String类型,而不是IO ()类型

我已经被困在这条路上太久了,所以任何帮助都是很棒的!

EN

回答 1

Stack Overflow用户

发布于 2016-01-12 04:25:35

看起来您已经在那里了,您只需要对字符串执行putStrLn操作,而不是对其执行print操作(这是ghci默认执行的操作)。print首先通过show运行参数,因此它将引用转义字符,如"\n"

代码语言:javascript
复制
ghci> putStrLn $ bibliography_rec [...]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34730326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档