2
テーブルをきれいに印刷して基本的なクエリを実行できるプログラムをHaskellで作成しています。関数内の非網羅的なパターン
printTable :: Table -> [String]
printTable [email protected](header:rows) = [addLine] ++ addHeader ++ [addLine] ++ addRows rows ++ [addLine]
where widthList = columnWidths table
makeTupleList [] = []
makeTupleList (x:xs) = zip widthList x : makeTupleList (xs)
addRows line = map printRow (makeTupleList line)
addLine = printLine widthList
addHeader = addRows [(map.map) toUpper header]
注:以下の機能は、表を印刷するコードの断片である「unlines」関数と、この関数を呼び出した後Table == [[String]]
、テーブルが印刷されます。
私はこの機能をテストして、[[String]]
引数を与えれば正しく動作します。しかし、私は私の「メイン」のコードでこの機能をテストする場合、私はエラーを取得:
Non-exhaustive patterns in function printTable
唯一の違いは、私のメインのコードでは、プログラムのユーザが入力としてテキストファイルを与えることができるということです。
main :: IO()
main = interact (lines >>> exercise >>> unlines)
exercise :: [String] -> [String]
exercise = parseTable >>> select "gender" "male"
>>> project ["last", "first", "salary"] >>> printTable
この問題を解決するには、何か歓迎すべきものです。