scheme
Входной вывод в схеме
Поиск…
Вступление
Входы и выходы в схеме обычно обрабатываются через порты. Порт - это структура данных, которая используется для взаимодействия с миром вне Схемы. Порт не ограничивается файлами, но может использоваться для чтения / записи в сокеты. В некотором смысле объект порта является своего рода универсальным объектом, который может не только манипулировать файлами и сокетами, но и любыми операциями чтения / записи с ОС. Например, можно реализовать порт, который может писать на принтер или даже управлять станком с ЧПУ с помощью схемы с помощью порта.
Создание входного порта
Входной порт может быть создан разными способами, но обычно метод начинается с open-input- .
Строковый порт
Вы можете использовать строку в качестве порта, используя open-input-string . Он создаст порт, который сможет читать из строки.
(define p
(open-input-string "(a . (b . (c . ()))) 34"))
Порт файла
Вы можете открыть файл для чтения с open-input-file .
(define p
(open-input-file "path/to/file"))
Чтение из входного порта
Чтение из входного порта может быть выполнено разными способами. Мы можем использовать метод read используемый REPL. Он будет читать и интерпретировать пространственно разделенные выражения.
Взяв пример из строкового порта выше. Мы можем читать из порта следующим образом:
(define p
(open-input-string "(a . (b . (c . ()))) 34"))
(read p) -> (a b c)
(read p) -> 34
Мы можем читать из порта как char используя специальный метод read-char . Это вернет один символ из порта, который мы читаем.
(define p (open-input-string "hello"))
(read-char p) -> #\h
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow