回答
好
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