Suche…


Einführung

Eingabe und Ausgabe im Schema werden normalerweise über Ports abgewickelt. Ein Port ist eine Datenstruktur, die zur Interaktion mit der Welt außerhalb von Scheme verwendet wird. Ein Port ist nicht auf Dateien beschränkt, sondern kann zum Lesen / Schreiben von Sockets verwendet werden. In gewisser Weise ist das Port-Objekt eine Art universelles Objekt, das nicht nur Dateien und Sockets, sondern jede Art von Lese- / Schreiboperation mit dem Betriebssystem bearbeiten kann. Zum Beispiel könnte man einen Port implementieren, der in einen Drucker schreiben oder sogar eine CNC-Maschine über einen Port steuern kann.

Erstellen Sie einen Eingabeport

Ein Eingabeport kann auf verschiedene Arten erstellt werden, aber normalerweise beginnt die Methode mit open-input- .

String-Port

Sie können einen String als Port verwenden, der open-input-string . Es wird ein Port erstellt, der aus der Zeichenfolge lesen kann.

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

Dateiport

Sie können eine Datei zum Lesen mit open-input-file .

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

Aus einem Eingangsport lesen

Das Lesen von einem Eingangsport kann auf verschiedene Arten erfolgen. Wir können die Verwendung read durch die REPL verwendet. Es werden durch Leerzeichen getrennte Ausdrücke gelesen und interpretiert.

Nehmen Sie das Beispiel aus dem String-Port oben. Wir können so aus dem Hafen lesen:

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

Wir können einen Port als char mit der speziellen Methode read-char . Dies gibt ein einzelnes Zeichen von dem Port zurück, von dem aus wir lesen.

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow