小编aja*_*kos的帖子

Haskell +输出String作为String类型

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

bibliography_rec :: [(String, String, Int)] -> String
bibliography_rec [] = ""
bibliography_rec (x:xs) = (citeBook x) ++ "\n" ++ (bibliography_rec xs)
Run Code Online (Sandbox Code Playgroud)

citeBook 只需将元组重新格式化为String.

使用此输入运行时:

ghci> bibliography_rec [("Herman Melville", "Moby Dick", 1851),("Georgy Poo", "Alex Janakos", 1666)]
Run Code Online (Sandbox Code Playgroud)

它产生:

"Moby Dick (Herman Melville, 1851)\nAlex Janakos (Georgy Poo, 1666)\n"
Run Code Online (Sandbox Code Playgroud)

我需要逐行打印,所以我使用了这个:

bibliography_rec (x:xs) = putStr ((citeBook x) ++ "\n" ++ (bibliography_rec xs))
Run Code Online (Sandbox Code Playgroud)

我的问题是我的输出需要是StringNOT 类型IO ()

我一直坚持这个问题太久了,所以任何帮助都很棒!

string io haskell

1
推荐指数
1
解决办法
69
查看次数

Haskell +师

我能够将所有元组的第z个元素相加,但由于一些奇怪的原因,我将结果除以2后得到1.

averageYear :: [(String, String, Int)] -> Int
averageYear [] = 0
averageYear ((x,y,z):xs) = (z + (averageYear xs)) `div` (length xs)
Run Code Online (Sandbox Code Playgroud)

谢谢!!

haskell arithmetic-expressions

-3
推荐指数
1
解决办法
210
查看次数

标签 统计

haskell ×2

arithmetic-expressions ×1

io ×1

string ×1