14.11.2012 Views

Curry: An Integrated Functional Logic Language

Curry: An Integrated Functional Logic Language

Curry: An Integrated Functional Logic Language

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

putStr [] = done<br />

putStr (c:cs) = putChar c >> putStr cs<br />

putStrLn :: String -> IO ()<br />

putStrLn cs = putStr cs >> putChar ’\n’<br />

getLine :: IO String<br />

getLine = do c IO ()<br />

doSolve constraint | constraint = done<br />

-- IO monad auxiliary functions:<br />

-- Execute a sequence of I/O actions and collect all results in a list:<br />

sequenceIO :: [IO a] -> IO [a]<br />

sequenceIO [] = return []<br />

sequenceIO (c:cs) = do x >) done<br />

-- Map an I/O action function on a list of elements.<br />

-- The results of all I/O actions are collected in a list.<br />

mapIO :: (a -> IO b) -> [a] -> IO [b]<br />

mapIO f = sequenceIO . map f<br />

-- Map an I/O action function on a list of elements.<br />

-- The results of all I/O actions are ignored.<br />

mapIO_ :: (a -> IO _) -> [a] -> IO ()<br />

mapIO_ f = sequenceIO_ . map f<br />

56

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!