我[(Double, Double)]
返回的列表,我想格式化并返回它像这样String
转换列表中包含元组格式化字符串
"(Double, Double)"
值必须转换为字符串上面提到行Double
。
如果在列表中有多个值,其格式应为:
"(Double, Double), (Double, Double), ..., (Double, Double)"
我[(Double, Double)]
返回的列表,我想格式化并返回它像这样String
转换列表中包含元组格式化字符串
"(Double, Double)"
值必须转换为字符串上面提到行Double
。
如果在列表中有多个值,其格式应为:
"(Double, Double), (Double, Double), ..., (Double, Double)"
format yourList = intercalate ", " $ map show yourList
只有一个建议:使用'intercalate',它结合了'concat'和'intersperse'。 – 2012-07-21 13:51:01
您可以使用列表的本地Show
实例:
showPairSequence :: [(Double, Double)] -> String
showPairSequence = init . tail . show
'init。 tail'?也许'showPairSequence = show'会更好? – 2012-07-21 12:24:01
@ДМИТРИЙМАЛИКОВ原始海报不需要'['或']' – alternative 2012-07-21 12:26:54
如果你实际上想打印Double
的具体数值,然后efie
给出了正确的答案。但是,如果你只想要显示的字符串"Double"
,那么你可以使用下面的回答:
format = intercalate ", " . map (const "(Double, Double)")
如果您的列表包含超过1元组,会发生什么? – efie 2012-07-21 09:17:31
您可能正在寻找'f xs = map show xs',但是如果没有更多信息很难说清楚。你可以用你期望的输入和输出的例子来编辑你的文章吗?例如,你期望输入'[(1.0,2.0),(3.5,4.5)]'是什么输出? – 2012-07-21 09:31:41
如果我的列表中有更多的元组,我期望'“(Double,Double),(Double,Double),...” – MahmutBulut 2012-07-21 09:50:56