2011-06-18 13 views
0

["6"、 ""、 "[[1,2,3,4,5,6]、[7,8,9,10,11,12]、[13,14、 15,16,17,18]、[19,20,21,22,23,24]、[25,26,27,28,29,30]、[31,32,33,34,35,36] ] "] 私はこの6と[[1,2,3,4,5,6]、[7,8,9,10,11,12]、[13,14,15,16,17 、18]、[19,20,21,22,23,24]、[25,26,27,28,29,30]、[31,32,33,34,35,36]] ファイル内のファイルハスケル文字列リスト

6. [[1,2,3,4,5,6]、[7,8,9,10,11,12]、[13,14,15,16] 17,18]、[19,20,21,22,23,24]、[25,26,27,28,29,30]、[31,32,33,34,35,36]]。

マップで試してみましたが、文字列を変換しようとしましたが、動作しませんでした。 sry for english

+0

本当にあなたが試したことについてもっと具体的にする必要があります。 「地図と読んで」と言ってもそれほど大したことはありません。 – luqui

答えて

2

mapreadを使用する際の問題は、リストの要素がすべて同じ種類であるとは限りません。最初の要素はInt、もう1つは空のリスト、3番目の要素は`[[Int]]です(変換する必要があります)。

リストの最初の要素をIntに変換するには、read $ head xs :: Intと言うことができます。ここでは、xsが文字列のリストです。

空の文字列が例外(Prelude.read:no parse)になるため、2番目の要素はreadで直接変換できません。

整数リストのリストである3番目の要素を変換するには、単にread $ xs !! 2 :: [[Int]]のようなものを使用できます。

これは安全ではなく、エレガントではありませんが、入力が常にこの構造を持っているとうまくいくはずです。

+0

IO文字列ではなく文字列はいのworkiはありません。私はイオからストリングに変換する必要があります – XYZ

関連する問題