2015-08-17 14 views
6

Gibt es eine einfache Möglichkeit, Strings in Racket auf eine bestimmte Breite abzuschneiden?Trunks im Racket zerschneiden

Beispiele:

(truncate "foobar" 3) 
-> "foo" 
(truncate "foobar" 6) 
-> "foobar" 

ich auch die letzten Zeichen einer abgeschnittenen Zeichenfolge möchten ersetzen: kann

(truncate "foobar" 4 #:when-truncated "...") 
-> "f..." 
(truncate "foobar" 10 #:when-truncated "...") 
-> "foobar" 

Antwort

6

Sie die ~a Funktion mit den #:max-width und #:limit-marker Schlüsselwörter verwenden, um gestutzt Saiten.

Zum Beispiel:

(~a "foobar" #:max-width 4 #:limit-marker "...") 

ausgewertet "f...".

Auf der anderen Seite:

(~a "foo" #:max-width 4 #:limit-marker "...") 

ausgewertet "foo".

You can find the documentation for this function here.