haskell - 在 Haskell 中打印元组内的值

我有一个元组列表。例如:[("A",100,1),("B",101,2)]。我需要以简单的方式显示它。例如:“你的名字是:A”,“你的id是:100”

如果有人能找到解决方案,那将是一个很大的帮助。提前致谢。

最佳答案

执行此操作的最简单方法是创建一个适用于列表中的元素之一的函数。所以你需要这样的东西:

showDetails :: (String, Int, Int) -> String
showDetails (name, uid, _) = "Your name is:" ++ name ++ " Your ID is: " ++ show uid

然后你会把这个函数应用到列表中的每个元素,这意味着你想使用映射函数:

map :: (a -> b) -> [a] -> [b]

因此,如果您的列表名为 xs,您可能需要这样的内容:

map showDetails xs

这显然为您提供了 [String] 类型的结果,因此您可能对 unlines 函数感兴趣:

unlines :: [String] -> String

这只是获取一个字符串列表,并创建一个字符串,其中每个元素由一个新行分隔。

然后,将所有这些放在一起,您将:

main :: IO ()
main = putStrLn . unlines . map showDetails $ [("A",100,1),("B",101,2)]

https://stackoverflow.com/questions/8094993/

相关文章:

c# - ASP.NET 中的虚拟路径

networking - BGP 与 OSPF 和 IsIs

php - 使用 PHP 检查字符串是否包含(CR、LF 或 CF 或 LF)或不包含

php - 如何使用某些 php 函数隐藏或编码 url?

django - 只读表单字段格式

PHP PDO - 可以连接但查询不工作

php - 使用 facebook sharer.php 与多个 url 变量共享一个 url

oracle - 检查临时表是否存在

json - 将Json信息转换成F#列表

wordpress - 在 wordpress 中使用 wp_list_table 时出现 fata