Как что-то сделать с данными из stdin, построчно, максимальное количество раз и вывести количество строк в Haskell

Этот код считывает количество строк для обработки из первой строки стандартного ввода, затем он зацикливает число _из _строк _до _раз обработки делает некоторые вычисления и печатает результат. Я хочу, чтобы он напечатал номер строки в «Строка #» после «#», но я не знаю, как его получить

import IO
import Control.Monad (replicateM)

main :: IO ()

main = do
    hSetBuffering stdin LineBuffering
    s <- getLine
    let number_of_lines_to_process = read s :: Integer
    lines <- replicateM (fromIntegral(number_of_lines_to_process)) $ do
        line <- getLine
        let number = read line :: Integer
            result = number*2 --example
        putStrLn ("Line #"++": "++(show result)) --I want to print the number of the iteration and the result
    return ()

. Я думаю, что решение этой проблемы очень простое, но я не знаком с Haskell (кодирую в нем впервые )и не нашел способа сделать это. Кто-нибудь может помочь?

6
задан ICTylor 30 April 2012 в 10:50
поделиться