Поиск…


Вступление

Входы и выходы в схеме обычно обрабатываются через порты. Порт - это структура данных, которая используется для взаимодействия с миром вне Схемы. Порт не ограничивается файлами, но может использоваться для чтения / записи в сокеты. В некотором смысле объект порта является своего рода универсальным объектом, который может не только манипулировать файлами и сокетами, но и любыми операциями чтения / записи с ОС. Например, можно реализовать порт, который может писать на принтер или даже управлять станком с ЧПУ с помощью схемы с помощью порта.

Создание входного порта

Входной порт может быть создан разными способами, но обычно метод начинается с 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