Konvertieren Sie die Zeichenfolge in Code in Schema

8

Wie konvertiere ich einen String in den entsprechenden Code in PLT Scheme (der die Methode string->input-port nicht enthält)? Zum Beispiel möchte ich diese Zeichenfolge konvertieren:

%Vor%

in diese Liste:

%Vor%

Ist es möglich, dies zu tun, ohne eine Datei zu öffnen?

    
Paul Reiners 25.11.2008, 21:33
quelle

4 Antworten

9

Scheme hat die Prozedur read zum Lesen von s-Ausdrücken vom Eingabeport und Sie können eine Zeichenkette in den Eingabestream mit string->input-port konvertieren. So können Sie ein Schema-Objekt aus einer Zeichenfolge mit

lesen %Vor%

Ich habe kein Schema installiert, daher lese ich es nur aus der Referenz und hat es nicht wirklich getestet.

    
Juha Autero 25.11.2008, 21:55
quelle
5

Aus dem PLT-Schema-Handbuch:

(open-input-string string [name-v]) erzeugt einen Eingangsport, der Bytes aus der UTF-8-Codierung (siehe Abschnitt 1.2.3) von string liest. Das optionale Argument name-v wird als Name für den zurückgegebenen Port verwendet. Der Standardwert ist 'string .

    
Anton Nazarov 26.11.2008 11:57
quelle
2

Aus dieser ähnlichen Frage können Sie comp.lang.scheme speichern Die Zeichenfolge in eine Datei liest dann daraus.

Das könnte etwa so aussehen wie dieser Beispielcode:

%Vor%     
Brian Gianforcaro 25.11.2008 21:41
quelle
1

Viele Schemas haben with-input-from-string str thunk , das thunk in einem Kontext ausführt, in dem str der Standard-Eingabeport ist. Zum Beispiel im Gambit-Schema:

(with-input-from-string "(foo bar)" (lambda () (read)))

ergibt:

(foo bar)

Das Lambda ist notwendig, weil eine thunk eine Prozedur sein sollte, die keine Argumente annimmt.

    
Joel Borggrén-Franck 26.11.2008 12:27
quelle

Tags und Links