Фреге, эквивалент getLine и read в Haskell

Есть ли у Фреге эквивалент Haskell getLine и read для синтаксического анализа ввода с консоли в стандартной библиотеке?

В настоящее время я делаю это следующим образом:

import frege.IO

getLine :: IO String
getLine = do
 isin <- stdin
 isrin <- IO.InputStreamReader.new isin
 brin <- IO.BufferedReader.fromISR isrin
 line <- brin.readLine
 return $ fromExceptionMaybe line

fromExceptionMaybe :: Exception (Maybe a) -> a
fromExceptionMaybe (Right (Just r)) = r
fromExceptionMaybe (Right _) = error "Parse error on input"
fromExceptionMaybe (Left l) = error l.getMessage

pure native parseInt java.lang.Integer.parseInt :: String -> Int

main _ = do
 line <- getLine
 println $ parseInt line

Обновление:

Frege был усовершенствован, поэтому теперь у нас есть getLine в самой стандартной библиотеке. Что касается read , у нас есть методы преобразования в String. Теперь исходная проблема проста:

main _ = do
  line <- getLine
  println line.atoi

Подробнее см. Ответ Инго ниже.

15
задан Marimuthu Madasamy 29 March 2013 в 00:06
поделиться