В Haskell readLn нет ошибки синтаксического анализа

Эта функция позволяет пользователю ввести список строк. Функция принимает длину и позволяет пользователю ввести длину еще на 1 строку. Затем каждая строка проверяется, чтобы убедиться, что она имеет ту же длину, что и исходная строка. Код:

readme :: IO [Line]
readme = do
 line <- readLn
 let count = length line
 lines <- replicateM (count-1) $ do 
  line <- readLn
  if length line /= count 
  then fail "too long or too short"
  else return line 
 return $ line : lines

Строка имеет тип String.

Когда я пытаюсь запустить функцию и ввести... скажем ["12","13"] я получаю следующее: *Исключение: ошибка пользователя (Prelude.readIO: нет синтаксического анализа) и я не могу понять почему, есть идеи?

9
задан gdrules 12 March 2012 в 12:56
поделиться