答えて
まあ
f :: [String] -> [Int]
f = map read
ませんか?
このような質問に対する一般的な答えは、タスクを複数の部分に分割することです。[String] -> [Int]
は、String -> Int
と[a] -> [b]
の組み合わせのように見えます。 Hoogle(リンク)...見てみましょう、あなたに
$ hoogle両方にいくつかの結果が得られます '文字列を - > int型
Test.HUnit.Baseラベル::文字列 - >ノード
プレリュードエラー: [チャー] - >
プレリュード長:: [A] - >のInt
Data.List長:: [A] - >のInt
Data.Char digitToInt ::チャー - >のInt
Data.Char ord :: Char - > Int
Debug.Trace trace :: String - > a - > a
Network.Buf ferType buf_fromStr :: BufferOp - >文字列 - >
Network.Socketお送り::ソケット - >文字列 - > IOのInt
Graphics.UI.GLUT.Callbacks.Windowシャアシャア:: - >キー
プレリュード読みます:: =>文字列を読む - >
読み:: =>文字列を読むText.Read - >
Data.String fromString :: IsString A =>文字列 - > fromString
GHC.Exts :: =>文字列をIsString - >
Control.Monad.Trans.Error strMsg ::誤差A =>文字列 - >
Control.Monad.Error.Class strMsg ::誤差A =>文字列 - >
。 ..
ああ、ごみが多い。 >
プレリュード長:: [A] - - >のInt
Data.List長我々は最初の
プレリュードエラー:: [シャア] ...あなたとは何の関係もないパッケージからのものを排除することができます:: [A] - >のInt
Data.Char digitToInt ::シャア - >のInt
Data.CharのORD ::シャア - >のInt
プレリュード読み:: =>文字列を読む - >
テキスト。 read :: read a => String - > a
Data.String fromString :: IsString a =>文字列 - > a
Text.Printfのprintf :: PrintfType R =>文字列 - > R
error
はほとんど何をしたいのように聞こえます。 length
もありません。 digitToInt
?一種の音で、実際には動作しますが、一桁の数字だけで動作します。 read
?あなたが期待していた名前ではないかもしれませんが、これについては正しいことです。文字列をより意味のあるもの(数字のようなもの)に変換することは、テキストを読むことに似ています。
プレリュードマップ::( - > B -
$ hoogle '> [B] [A]':
右は、他の側にHoogleは、私たちは右フロントアップしたいものを提供します) - > [a] - > [b]
Data.List map ::(a - > b) - > [a] - > [b]
Prelude concatMap ::(a - > [b]) - > [a] - > [b]
Data.List concatMap ::(a - > [b]) - > [a] - > [b]
Data.Maybe mapMaybe ::(a - > Maybe b) - > [a] - > [b]
Prelude cycl e :: [a] - > [a]
Data.Listサイクル:: [a] - > [a]
Prelude init :: [a] - > [a]
Data.List init :: [ A] - > [A]
プレリュード逆:: [A] - > [A]
再度名前ではない可能性がある、これらの機能のほとんどは、 "マップ" と何かと呼ばれて見ての通りあなたは期待していましたが、明らかにそれがこの操作と呼ばれています!あなたが探しているものはかなり簡単です。
最後に、これらの2つの機能を組み合わせる必要があります。 map
は最初の引数として別の関数を必要とします - それは明らかにread
です!したがって、map
をread
に適用するだけです。次の引数は[a]
のリストです:aha、もう完了です!
あなたはGHCiのを起動することでこれを確認することができます
プレリュード>:Tマップは
マップが読み読み::読むのB => [文字列] - > [B]
ありますまだb
はInt
の代わりにここに入れていますが、気にすることはありません。b
はあなたが好きなタイプです。 - Read
インスタンスがあることを条件とします。 Int
を有する:
プレリュード>は:私がint = GHC.Types.I#GHC.Prim.Int#
データをINT - GHC.Types'
インスタンス有界のInt `で定義 - で定義され` GHC.Enum '
インスタンス列挙のInt - GHC.Enum `で定義'
インスタンス民 - - GHC.Classes' GHC.Real`で定義
インスタンス積分のInt」 'で定義され
インスタンス式のInt Int - GHC.Numに定義されています
インスタンスOrd Int - `GHC.Classes 'に定義されています
インスタンス `GHC.Read 'でInt定義されています
インスタンスReal Int - 定義済み` GHC.Real'
インスタンス `GHCで定義されています。ショー」
これは失敗します。それを行うには
map read ["1","2"]
[*Exception: Prelude.read: no parse
方法は次のとおりです。GHCiの社外
map (read::String->Int) ["1","2"]
[1,2]
:: [Int]
、.HSファイルには次のようになります。
let intList = map (read::String->Int) ["1","2"]
- 1. int文字列のリスト/タプルをintに変換する
- 2. intリストをコンマで文字列に変換する
- 3. 2Dの文字列リストを2Dのintリストのpythonに変換するには?
- 4. pythonリストの文字列をリストのリストに変換する
- 5. 文字列をリストに変換する
- 6. 文字列をリストに変換する
- 7. リストを文字列に変換する
- 8. 文字列をintに変換したリストで並べ替え
- 9. C - 文字列(文)を文字列リストに変換する
- 10. リストの文字列をJavaの文字列のリストに変換する
- 11. Pythonの文字列リストを文字列に変換する
- 12. 文字列リストを適切なリストに変換するには?
- 13. 文字列リストをURIリストに変換する
- 14. リストのリストを縦書きの文字列に変換する
- 15. リストの文字列表現をScalaのリストに変換する
- 16. ユニコードオブジェクトのリストを文字列のリストに変換する
- 17. 文字列からintへの変換のリスト
- 18. 文字列にリストを変換し、バック
- 19. リストに文字列を変換し
- 20. リストをcsv文字列に変換
- 21. 文字列と文字列のリストを文字列に変換する方法
- 22. Pythonで文字列のリストをUnicode文字に変換する
- 23. 文字列を個々の文字のリストに変換する
- 24. intとnumのリスト値を文字列に変換/更新/型キャストする
- 25. stringのリストのリストを効率的に文字列のリストに変換する
- 26. JSF2文字列のリストを文字列に変換[]
- 27. 文字列^をintに変換する
- 28. intを&文字列に変換する
- 29. intのリストをリストのリストに変換するには?
- 30. リストを変換する<int[]> int [、]
うまくいきました! :) tnx – pier