2017-04-10 2 views
1

これを行う方法はありますか?私は、c1234501 10 20 10 30 30という形式の学生のリストを読み込み、最初に文字列を使って検索可能にし、その背後にある値の平均値を表示する小さなプログラムを作成しています。Haskell - 文字列のリストをフォームのタプルに分割する(String、[Int])

私は現在のファイルを読み込むと、次のコードを経由して文字列のリストにそれを分割しています:

main = do 
    putStrLn "Filename?" 
    fileName <- getLine 
    inputFile <- openFile fileName ReadMode 
    contents <- hGetContents inputFile 
    let lineList = lines contents 
    let studentStrings = tail lineList 

しかし、私は、最後の行でエラーに実行している私が持っていることを言っていますStringとIO Stringの型の不一致。

また、文字列リストをフォームのタプル(String、[Int])に変換する関数を書く方法もありません。私はこれが私の唯一のポイントであると確信しています。私はおそらく自分自身でそれの残りを得ることができると思う。

答えて

2

私はあなたにコードを教えてくれません。これは、あなた自身が少しの方向性を持って自分でこれを行うことができるはずだからです。あなたが(例えばhoogle、上)になりますいくつかの機能がString秒のリストに空白にStringを分割するwords、と(自分の場合)にStringを変換するためのreadIntが含まれます。リスト内のすべての要素に関数を適用する方法を理解するには、fmapまたはmapを調べることをお勧めします。最後に、StringIO Stringの間の型の不一致を再現するには、pureまたはreturnが必要です。これらはのm aを取得するために使用されます。

+0

本当にありがとうございました! – Adam

関連する問題