День добрый!
Недавно на досуге занялся изучением haskell и столкнулся с кучей непонятного. Например есть код
import Control.Monad
import System.IO
getValues = do hFlush stdout
input <- getLine
let tmp = read input
if tmp == 0
then return []
else liftM (tmp :) (getValues)
main = do — чего то там она делает с полученным списком
почему getValues игнорирует первый элемент из списка,вводимого пользователем с клавиатуры? Ввод должен продолжаться до появления числа 0