首页 > 解决方案 > 将字符串列表转换为元组列表

问题描述

所以,到目前为止,我一直在研究 Haskell。我需要将字符串列表转换为包含字符串的元组列表,以便它们分别配对。

像这样:

["String1 String 2", "String3 String4", "String5 String6"] 

进入

[("String1", "String2"), ("String3, String4"), ("String3, String4")].

我实际上还没有想象过任何代码,但我不知道它应该如何工作,所以我真的不期待任何东西,只是我可以遵循的提示。

无论如何,我正在尝试在没有任何外部库的情况下实现它,因此链接它们不会很有用。

感谢您的任何建议!

标签: stringlisthaskelltuples

解决方案


如果您的列表中没有错字,它应该很简单:

strToTuple :: [String] -> [(String, String)]
strToTuple = map toTuple

toTuple :: String -> (String, String)
toTuple st = joinWords $ words st

joinWords :: [a] -> (a, a)
joinWords [x, y] = (x, y)
joinWords _ = error "bad input, list should be length 2"

输出:

strToTuple ls
=> [("String1","String2"),("String3","String4"),("String5","String6")]

请注意,您的帖子有一个“String 2”而不是“String2”我不确定这是否是一个错误,但如果是,这应该可以


推荐阅读