2016-03-28 3 views
0

Ich verwende DrRacket, Version 6.4, Englisch, um eine kleine Anwendung in Scheme zu erstellen. Ich habe mich gefragt, ob es eine effizientere Möglichkeit gibt, den folgenden Code zu verketten. [es funktioniert Ich bin nur nicht sicher, ob es die sauberste ist, da ich Schema bin hier]Schema verketten Zeichenfolgen zum Anzeigen

(display "Rolling ") 
    (display (number->string (- 5 (length my-rolled-dice)))) 
    (display " dice\n") 
    (display "You rolled\n") 
    (define my-roll (make-list-of-random-numbers (- 5 (length my-rolled-dice)) 6)) 
    (display my-roll) 
    (display "\n") 

ich für die folgende Ausgabe

Rolling 5 dice 
You rolled 
(3 1 3 6 6) 

auf dem Bildschirm suchen Gibt es eine saubere Art und Weise um dies zu schreiben oder ist das so sauber wie es in Schema?

Antwort

4

Verwenden printf, dann ist es kürzer:

(printf "Rolling ~a dice~n" (- 5 (length my-rolled-dice))) 
(printf "You rolled~n~a" (make-list-of-random-numbers (- 5 (length my-rolled-dice)) 6)) 
+1

Hinweis, dass es [mehr Lispy zu verwenden '~%'] (http://www.lispworks.com/documentation/HyperSpec/Body/22_cab.htm) anstelle von '~ n', so tendiere ich dazu, das zu bevorzugen, um zu anderen freundlicher zu sein. Aber wenn Ihr Code nicht von anderen als Racketeers gelesen werden soll, dann ist '~ n' natürlich in Ordnung. –

+0

Danke Oscar und Chris !!! – merkman