Szukaj…


Wprowadzenie

Dane wejściowe i wyjściowe w schemacie są zwykle obsługiwane przez porty koryta. Port to struktura danych, która służy do interakcji ze światem poza Programem. Port nie jest ograniczony do plików, ale może być używany do odczytu / zapisu w gniazdach. Pod pewnymi względami obiekt portu jest rodzajem uniwersalnego obiektu, który może nie tylko manipulować plikami i gniazdami, ale także dowolną operacją odczytu / zapisu w systemie operacyjnym. Na przykład można zaimplementować port, który może zapisywać na drukarce, a nawet sterować maszyną CNC ze schematu za pomocą portu.

Utwórz port wejściowy

Port wejściowy można utworzyć na wiele sposobów, ale zwykle metoda rozpoczyna się od open-input- z open-input- .

Port ciągu

Możesz użyć ciągu jako portu za pomocą ciągu open-input-string . Stworzy port, który będzie mógł odczytać z łańcucha.

(define p
  (open-input-string "(a . (b . (c . ()))) 34"))

Port pliku

Możesz otworzyć plik do odczytu za pomocą open-input-file .

(define p
  (open-input-file "path/to/file"))

Odczyt z portu wejściowego

Odczyt z portu wejściowego można wykonać na wiele sposobów. Możemy użyć metody read stosowanej przez REPL. Odczyta i zinterpretuje wyrażenia rozdzielone spacjami.

Biorąc przykład z portu ciągu powyżej. Możemy odczytać z portu w następujący sposób:

(define p
  (open-input-string "(a . (b . (c . ()))) 34"))
(read p) -> (a b c)
(read p) -> 34

Możemy odczytać z portu jako char za pomocą specjalnej metody read-char . Zwróci to jeden znak z portu, z którego czytamy.

(define p (open-input-string "hello"))
(read-char p) -> #\h


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow