显示带有自定义语法的Haskell元组列表

时间:2011-04-15 23:12:13

标签: list haskell tuples pretty-print

我有一个元组列表[(1,'a','%',"yes"),(2,'b','[',"no"),(3,'c',']',"ok")]。 如何以[(1,a,%,yes),(2,b,[,no),(3,c,],ok)]

的形式将此列表显示为输出

1 个答案:

答案 0 :(得分:4)

您希望进行的转换看起来是要删除引号字符吗?如果是这样,过滤在您的数据上调用show的结果就足够了:

 > let x = [(1,'a','%',"yes"),(2,'b','[',"no"),(3,'c',']',"ok")]

然后应用过滤器,

 > putStrLn . filter (`notElem` "'\"") . show $ x
 [(1,a,%,yes),(2,b,[,no),(3,c,],ok)]

一旦您知道show将数据结构转换为漂亮的字符串,处理该字符串以进行微小修改就非常容易了。