Recherche…


Introduction

Les entrées et sorties dans le schéma sont généralement gérées par les ports. Un port est une structure de données utilisée pour interagir avec le monde extérieur au schéma. Un port n'est pas limité aux fichiers mais peut être utilisé pour lire / écrire sur les sockets. À certains égards, l'objet port est une sorte d'objet universel qui peut non seulement manipuler des fichiers et des sockets, mais aussi toute opération de lecture / écriture avec le système d'exploitation. Par exemple, on pourrait implémenter un port capable d'écrire sur une imprimante ou même de contrôler une machine CNC à partir d'un schéma utilisant un port.

Créer un port d'entrée

Un port d'entrée peut être créé de plusieurs manières, mais la méthode commence généralement par open-input- .

Port de chaîne

Vous pouvez utiliser une chaîne en tant que port en utilisant open-input-string . Cela créera un port qui pourra lire à partir de la chaîne.

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

Port de fichier

Vous pouvez ouvrir un fichier pour le lire avec open-input-file .

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

Lecture depuis un port d'entrée

La lecture depuis un port d’entrée peut se faire de plusieurs manières. Nous pouvons utiliser la méthode de read utilisée par le REPL. Il va lire et interpréter les expressions séparées par des espaces.

Prenons l'exemple du port de chaîne ci-dessus. Nous pouvons lire depuis le port comme ceci:

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

Nous pouvons lire un port en tant que char utilisant la méthode spéciale read-char . Cela renverra un seul caractère du port que nous lisons.

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow