λ> :t () () :: () λ> :k () () :: * λ> :t getChar getChar :: IO Char λ> :t [getChar] [getChar] :: [IO Char] λ> :t print print :: Show a => a -> IO () λ> 2 2 λ> putStrLn (show 2) 2 λ> :t putStrLn (show 2) putStrLn (show 2) :: IO () λ> getChar x 'x' λ> getChar y 'y' λ> getLine kfdsajkdsfjkds "kfdsajkdsfjkds" λ> main HelloWorld λ> main Hello, world! λ> :t putStrLn putStrLn :: String -> IO () λ> main Hello, IO Въведохте: Hello, IO λ> main Hello! Въведохте: Въведохте: Въведохте: Въведохте: Въведохте: Въведохте: Въведохте: Въведохте: Въведохте: Въведохте: Въведохте: Въведохте: ВъведохInterrupted. λ> main Hello Въведохте: Hello λ> main Моля, въведете палиндром: Hello Hello не е палиндром! Моля, въведете палиндром: abba Благодаря! λ> read "1.23" *** Exception: Prelude.read: no parse λ> (read "1.23")::Int *** Exception: Prelude.read: no parse λ> (read "1.23")::Double 1.23 λ> getInt 2 2 λ> getInt 3214098324932 3214098324932 λ> :t getInt getInt :: IO Int λ> getInt 123 123 λ> findAverage Моля, въведете брой числа: 3 0.0 λ> findAverage Моля, въведете брой числа: 3 0.0 λ> :t Control.Monad.liftM2 Control.Monad.liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r λ> readAndSum 3 2 3 4 9 λ> findAverage Моля, въведете брой числа: 3 1 5 7 4.333333333333333 λ> sequence [getInt,getInt,getInt] 2 5 8 [2,5,8] λ> sequence $ replicate 3 getInt 2 5 8 [2,5,8] λ> printRead "n" n = 4 4 λ> mapM printRead ["x", "y", "z"] x = 5 y = 8 z = 13 [5,8,13] λ> throwAwayResult getInt 123 λ> mapM_ print ["Hello", "Haskell", "is cool"] "Hello" "Haskell" "is cool" λ> forever getInt 1 2 3 4 5 6 Interrupted. λ> forever $ print "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Ha" "Interrupted. λ> main Моля, въведете палиндром: abba Благодаря! λ> forever main Моля, въведете палиндром: abba Благодаря! Моля, въведете палиндром: hello hello не е палиндром! Моля, въведете палиндром: Interrupted. λ> main Моля, въведете брой: 5 Моля, въведете число #1: 1 Моля, въведете число #2: 3 Моля, въведете число #3: 5 Моля, въведете число #4: 7 Моля, въведете число #5: 9 Средното аритметично е: 5.0 Хайде отново! Моля, въведете брой: Interrupted. λ> getContents "abc abc\ndefghi defghi\nInterrupted. : hIsEOF: illegal operation (handle is semi-closed) λ> :k [] [] :: * -> * λ> :k (,) (,) :: * -> * -> * λ> :k Either Either :: * -> * -> * λ> :k Maybe Maybe :: * -> * λ> :k IO IO :: * -> * λ> :k Num Num :: * -> Constraint λ> :k Show Show :: * -> Constraint NoSpaces.hs:10:15-19: error: … • Expecting one more argument to ‘Maybe’ Expected a type, but ‘Maybe’ has kind ‘* -> *’ • In the first argument of ‘Show’, namely ‘Maybe’ In the instance declaration for ‘Show Maybe’ | Compilation failed. λ> :k Monad Monad :: (* -> *) -> Constraint λ> :k (->) (->) :: * -> * -> * λ> :k (->) Int (->) Int :: * -> * λ>