Şema,

2016-03-28 14 views
0

görüntülemek için dizeleri birleştiriyor Şemada küçük bir uygulama oluşturmak için DrRacket, sürüm 6.4, İngilizce kullanıyorum. Aşağıdaki kodu birleştirmenin daha etkili bir yolu olup olmadığını merak ediyordum. daha temiz bir yolu var mı ekranaŞema,

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

için aşağıdaki çıkış arıyorum

(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") 

[o ben Planı için yeni beri en temiz ise sadece emin değilim çalışır] Bunu yazmak için mi yoksa şemadaki kadar temiz mi?

cevap

4

kullanımı printf, daha kısa: bu olduğunu

(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

Not [fazla Lispy 'kullanımı ~% '] (http://www.lispworks.com/documentation/HyperSpec/Body/22_cab.htm) 'n' yerine, başkalarına karşı kibar olmayı tercih etme eğilimindeyim. Ancak kodunuzun Racketeers dışındaki herkes tarafından okunması istenmiyorsa, '~ n' elbette iyidir. –

+0

Teşekkürler Oscar ve Chris !!! – merkman