Zoeken…


Invoering

Invoer en uitvoer in het schema worden meestal via poorten afgehandeld. Een poort is een gegevensstructuur die wordt gebruikt om te communiceren met de wereld buiten Scheme. Een poort is niet beperkt tot bestanden, maar kan worden gebruikt om te lezen / schrijven naar sockets. In sommige opzichten is het port-object een soort universeel object dat niet alleen bestanden en sockets kan manipuleren, maar elke vorm van lees- / schrijfbewerking met het besturingssysteem. Je zou bijvoorbeeld een poort kunnen implementeren die naar een printer kan schrijven of zelfs een CNC-machine vanuit Schema kunnen besturen met behulp van een poort.

Maak een invoerpoort

Een invoerpoort kan op veel manieren worden gemaakt, maar meestal begint de methode met open-input- .

Stringpoort

U kunt een string als poort gebruiken met open-input-string . Het zal een poort maken die van de string kan lezen.

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

Bestandspoort

U kunt een bestand openen om te lezen met open-input-file .

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

Lezen van een invoerpoort

Het lezen van een invoerpoort kan op veel manieren worden gedaan. We kunnen de leesmethode gebruiken read wordt gebruikt door de REPL. Het zal in de ruimte gescheiden uitdrukkingen lezen en interpreteren.

Neem het voorbeeld uit de stringpoort hierboven. We kunnen als volgt uit de poort lezen:

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

We kunnen lezen van een poort als char met behulp van de speciale methode read-char . Dit retourneert één teken uit de poort waar we van lezen.

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow