string - 将字符串列表转换为元组列表
问题描述
所以,到目前为止,我一直在研究 Haskell。我需要将字符串列表转换为包含字符串的元组列表,以便它们分别配对。
像这样:
["String1 String 2", "String3 String4", "String5 String6"]
进入
[("String1", "String2"), ("String3, String4"), ("String3, String4")].
我实际上还没有想象过任何代码,但我不知道它应该如何工作,所以我真的不期待任何东西,只是我可以遵循的提示。
无论如何,我正在尝试在没有任何外部库的情况下实现它,因此链接它们不会很有用。
感谢您的任何建议!
解决方案
如果您的列表中没有错字,它应该很简单:
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”我不确定这是否是一个错误,但如果是,这应该可以
推荐阅读
- css - 角垃圾桶图标正在将鼠标指针更改为光标
- android - 运行 connectedAndroidTest 时尝试安装 apk 时,BitBucket 管道挂起
- clojure - 为什么我的随机函数并不总是有效?
- slack-api - Slack API:如何确定 app_mention 消息中的机器人名称?
- spring - 从 Spring 数据存储库中获取父实体
- sql-server - SQL Server 数据工具 2017 与 Visual Studio 2010
- javascript - 如何使用 js 配置 Access-Control-Allow-Origin
- ssh - 使用 ssh 和 expect 编写远程列表
- rest - WCF REST 服务 HTTP/HTTPS 端口共享
- python - 使用 Github 在 Heroku 中出现错误“collectstatic --noinput”