回答
好
f :: [String] -> [Int]
f = map read
没有?
这些问题的一般答案是将任务分成几部分:[String] -> [Int]
看起来像是String -> Int
和[a] -> [b]
的组合。 Hoogle(链接)会给你一些结果双方,让我们来看看......
$ hoogle '字符串 - >诠释'
Test.HUnit.Base标签::字符串 - >节点
前奏错误: :[字符] - >一个
前奏长度:: [A] - >内部
长度Data.List模块:: [A] - >内部
Data.Char digitToInt ::字符 - >内部
Data.Char ord :: Char - > Int
Debug.Trace trace :: String - > a - > a
Network.Buf ferType buf_fromStr :: BufferOp一个 - >字符串 - >一
Network.Socket发送::插座 - >字符串 - > IO诠释
Graphics.UI.GLUT.Callbacks.Window字符::字符 - >重点
前奏读::阅读=>字符串 - >一个
Text.Read读::阅读=>字符串 - >一个
Data.String fromString :: IsString A =>字符串 - >一个
GHC.Exts fromString :: IsString A =>字符串 - >一个
Control.Monad.Trans.Error strMsg ::错误A =>字符串 - >一个
Control.Monad.Error.Class strMsg ::错误A =>字符串 - >一个
。 ..
呃,很多垃圾。我们可以先消除那些包,你什么都没有做......
前奏错误:: [字符] - >一个
前奏长度:: [A] - >诠释
长度Data.List模块:: [A] - >内部
Data.Char digitToInt ::字符 - >内部
Data.Char ORD ::字符 - >内部
前奏读::阅读=>字符串 - >一个
文本。阅读:阅读a =>字符串 - > a
Data.String fromString :: IsString a => String - > a
Text.Printf的printf :: PrintfType R =>字符串 - > [R
error
听起来像几乎你想要什么。 length
都没有。 digitToInt
?听起来是对的 - 实际上是有效的,但只有一位数字。 read
?也许不是你想要的名字,但是如果你想一想,这是正确的:将字符串转换为更有意义的东西(如数字)就像阅读一些文本。
权,另一边Hoogle给了我们,我们要摆在最前头的东西:
$ hoogle '[A] - > [B]'
前奏地图::(甲 - >乙) - > [a] - > [b]
Data.List map ::(a - > b) - > [a] - > [b]
Prelude concatMap ::(a - > [b]) - Data.List concatMap ::(a - > [b]) - > [a] - > [b]
Data.Maybe mapMaybe ::(a - >也许b) - > [a] - > [b]
Prelude cycl Data ::List :: [a]
Prelude init :: [a] - > [a]
Data.List init :: [ A] - > [A]
前奏反向:: [A] - > [A]
正如你所看到的大多数调用这些功能用的东西 “地图”,这可能会再次不能作为名称你的预期 - 但显然这就是这个操作被称为!你正在寻找的是最简单的。
最后,我们需要结合这两个功能。 map
需要另一个功能作为它的第一个参数 - 嗯,那明显是read
那么!所以你只需申请map
到read
。下一个参数是[a]
s的列表:aha,我们已经完成了!
前奏>:
您可以通过启动了ghci中检查这件T地图阅读
地图阅读::查看B => [字符串] - > [B]
有仍然这b
在这里而不是Int
,但没关系:b
可以是你想要的任何类型! - 只要它有一个Read
实例。 Int
具有:
前奏>:I INT
数据INT = GHC.Types.I#GHC.Prim.Int# - 在`GHC.Types'
实例有界诠释定义 - 定义在` GHC.Enum '
实例枚举诠释 - 定义在`GHC.Enum'
例如公式诠释 - 定义在`GHC.Classes'
例如积分诠释 - 在'GHC.Real定义”
实例民Int - 定义于'GHC.Num'
实例Ord Int - 定义于'GHC.Classes'
实例读取Int - 在'GHC.Read'中定义
实例Real Int - 在`GHC.Real'中定义的
实例在GHC中显示Int-Defined。展会”
这种失败:
map read ["1","2"]
[*Exception: Prelude.read: no parse
做到这一点的方法是:
map (read::String->Int) ["1","2"]
[1,2]
:: [Int]
GHCI之外,在一个名为.hs文件,这将是:
let intList = map (read::String->Int) ["1","2"]
- 1. 将列表中的字符串转换为int列表
- 2. 将字符串列表转换为字符串列表
- 3. 将int字符串的列表/元组转换为int
- 4. 转换列表<int>为分隔字符串列表
- 5. 斯卡拉 - 转换列表[字符串]元组列表[(Int,Int)]
- 6. 将字符串转换为字列表?
- 7. 字符串到int转换的列表
- 8. 将字符串转换为列表
- 9. 将列表转换为字符串
- 10. 将Enumerable.Range转换为字符串列表
- 11. 将字符串转换为列表
- 12. Java - 将字符串转换为列表
- 13. 将AppleScript列表转换为字符串
- 14. 将NaN和字符串列表转换为int?
- 15. dart:html - 将字符串从HttpRequest转换为列表<int>
- 16. 在Dart中将列表<int>转换为字符串?
- 17. 将字符串列表转换为相应的int c#
- 18. 将数据表/数据行[]列从字符串转换为int
- 19. 将int转换为字符串用于下拉列表
- 20. 使用逗号将int列表转换为字符串SQL Server
- 21. 如何将2D字符串列表转换为2D int列表python?
- 22. 将嵌套列表字符串转换为列表
- 23. 将字符串列表转换为日期列表Python 3.6
- 24. 如何将字符串列表转换为适当的列表?
- 25. 将列表(的对象)转换为列表(的字符串)
- 26. 将列表的Python列表转换为字符串
- 27. 如何将字符串列表转换为整数列表?
- 28. 将字符串查找列表转换为Python中的列表
- 29. 将列表列表转换为垂直字符串
- 30. 将字符串的混合列表转换为整数列表
它确实工作! :) tnx – pier 2009-05-28 09:42:37