Вывод строки символов на экран монитора. Ввод строки символов с клавиатуры. Создание и удаление файлов презентация
Содержание
- 2. Задачи Вывод строки символов на экран монитора Ввод строки символов с клавиатуры Создание и удаление файлов
- 3. монады Монада ввода - вывода используется в Haskell как связующее звено между значениями, присущими функциональному языку,
- 4. монады Термин монада происходит из отрасли математики, известной как теория категорий. Однако, с точки зрения программиста
- 5. Все монады представлены в лице класса типов Monad - IO class Monad m where (>>=) ::
- 6. Метод (>>=) - это оператор последовательной компоновки (sequentially composition). Иногда его ещё называют оператором связывания (bind):
- 7. пример main :: IO () main = do text putStrLn $ "You said ‘ " ++
- 8. Затем >> Монадический оператор >> - это оператор “затем” (then). Это простейший случай связывания: действия связываются
- 9. return obtainTextFromUser :: IO String obtainTextFromUser = do putStrLn "Enter your text, please: " firstText return
- 10. Пример IO в do нотации: main = do putStrLn "Hello, what is your name?" name putStrLn
- 11. Функции вывода putChar :: Char -> IO () putStr :: String -> IO () putStrLn ::
- 12. Исполняемый файл main = putStrLn "hello, world" Сохраняем в файле Helloword.hs и компилируем В текущей директории
- 13. Функции ввода getChar :: IO Char -- читаем символ getLine :: IO String -- читаем строку
- 14. getLine main = do putStrLn "Hello, what's your name?" name putStrLn ("Hello" ++ name ++ ":
- 15. getLine import Data.Char main = do putStrLn "What's your first name?" firstName putStrLn "What's your last
- 16. программа считывает и суммирует два числа типа Integer import System.IO main = do hSetBuffering stdout NoBuffering
- 17. getChar Программа принимает три символа с клавиатуры и выводит их в обратном порядке: import Control.Applicative f
- 18. Файлы type FilePath = String writeFile :: FilePath -> String -> IO () appendFile :: FilePath
- 19. readFile readFile readFile :: FilePath -> IO String import System.IO main = do contents putStr contents
- 20. writeFile writeFile :: FilePath -> String -> IO () import System.IO import Data.Char main = do
- 21. Добавление данных в файл appendFile import System.IO main = do todoItem appendFile "todo.txt" (todoItem ++ "\n")
- 22. openFile import System.IO main = do handle contents putStr contents hClose handle import System.IO main =
- 23. data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode withFile :: FilePath -> IOMode ->
- 24. withFile' :: FilePath -> IOMode -> (Handle -> IO a) -> IO a withFile' path mode
- 25. Аргументы командной строки getArgs :: IO [String] import System.Environment import Data.List main = do args progName
- 26. Основные подходы
- 27. Простой ввод-вывод import System.IO import Data.Char main :: IO () main = do contents writeFile "file.out"
- 28. Список действий Если шаблон, описанный в предыдущем разделе, недостаточен для ваших задач, то следующим шагом будет
- 29. import System.IO import Data.Char ( toUpper ) import System.Environment main = do [f1,f2] h1 h2 copyFile
- 30. import System.IO import System.Directory import Data.List main = do handle (tempName, tempHandle) contents let todoTasks =
- 31. View , Add , Remove import System.Environment import System.Directory import System.IO import Data.List dispatch :: [(String,
- 32. View , Add , Remove add :: [String] -> IO () add [fileName, todoItem] = appendFile
- 33. View , Add , Remove remove :: [String] -> IO () remove [fileName, numberString] = do
- 34. import System.Environment import System.Directory import System.IO import Data.List dispatch :: [(String, [String] -> IO ())] dispatch
- 35. $ ./todo view todo.txt 0 - Iron the dishes 1 - Dust the dog 2 -
- 36. Монада ввода - вывода включает простую систему обработки исключений. Любая операция ввода - вывода может вызвать
- 37. Ошибки ввода - вывода Ошибки типа IOError используются монадой ввода - вывода. Это абстрактный тип; библиотека
- 38. Ошибки ввода - вывода Все эти функции возвращают значение типа Bool, которое равно True, если ее
- 39. Обработка ошибок import System.Environment import System.IO import System.Directory main = do (fileName:_) fileExists if fileExists then
- 40. import System.Random import Control.Monad(when) main = do gen askForNumber gen askForNumber :: StdGen -> IO ()
- 42. Скачать презентацию