これは、私が読んでいるテキスト ファイルにあるエントリの簡単な例です。
Set1 1 2 3
Set2 6 7 8
上記の文字列をタプルのリストに変換できる関数を作成しようとしています -
[("Set1", [1.0, 2.0, 3.0]), ("Set2", [6.0, 7.0, 8.0])]
これは私が書いた関数です -
parse_input :: String -> [(String, [Float])]
parse_input x = [ (head y, int2float (tail y)) | y <- splitinput ]
where
int2float x = [ read a::Float | a <- x ]
splitinput = [ words a | a <- lines x ]
このコードで最も気になるのは int2float の部分です。整数のリストを調べ、それぞれを 1 つずつ float に変換します。
整数のリストを浮動小数点数のリストに変換するより効率的な方法はありますか?