Кто знаком с Haskell?

Тема в разделе "Другие", создана пользователем katerina99, 3 июн 2008.

  1. katerina99

    katerina99 Гость

    И снова вас беспокоит программист-недоучка... :) добрые люди,переведите,пожалуйста,на человеческий язык то,что делает эта программа...Желательно поподробнее...Буду очень благодарна!!!
    Код (Text):
    module Parser where
    import IO
    import System

    execute funct = getArgs >>= parser funct (Nothing,Nothing)


    parser funct (cnt,hFile) [] = funct (maybe 10 id cnt) (maybe stdin id hFile)
    parser funct (Nothing, hFile) ("-n":n:othr) = parser funct (Just (read n :: Int), hFile) othr
    parser funct (Nothing, _) ["-n"] = error "wrong args"
    parser funct (cnt, Nothing) (path:othr) = do { h <- openFile path ReadMode; parser funct (cnt,Just h) othr}
    parser funct _ _ = error "Too much arguments"

    toLines :: Handle -> IO [String]
    toLines h = do isEOF <- hIsEOF h
    if isEOF then return []
    else do str <- hGetLine h
    strings <- toLines h
    return(str:strings)

    take_ :: Int -> Handle -> IO [String]
    take_ 0 h = return []
    take_ n h |n < 0 = error "wrong number of strings"
    |otherwise = do eofflag <- hIsEOF h
    if eofflag then return []
    else do str <- hGetLine h
    strs <- take_ (n-1) h
    return (str : strs)
     
Загрузка...

Поделиться этой страницей