Я могу сделать следующее:
Prelude> reads "1 2 3" :: [(Int, String)]
[(1," 2 3")]
Prelude> reads "(1,2) (3,4)" :: [((Int, Int), String)]
[((1,2)," (3,4)")]
Prelude> reads "(1,2)(3,4)" :: [((Int, Int), String)]
[((1,2),"(3,4)")]
Prelude> reads "(1,2)\n(3,4)" :: [((Int, Int), String)]
[((1,2),"\n(3,4)")]
Prelude> reads "(1,2) (3,4)" :: [((Int, Int), String)]
[((1,2)," (3,4)")]
Я могу получить Read
и получить чтение, чтобы прочитать их тоже. Но я никогда не читал, чтобы возвращать более одного кортежа в списке. Почему reads
возвращает список?