2013-06-02 9 views

risposta

10

(apply string-append (list "a" "1" "b" "2" "c" "3")) o (string-append* "" (list "a" "1" "b" "2" "c" "3")) dovrebbe funzionare. Vedere: http://docs.racket-lang.org/reference/strings.html

Se si voleva una procedura per fare questo si può solo scrivere (define (strings->string sts) (apply string-append sts))

8

Non reinventare la ruota! in Racket, esiste una procedura appositamente per questo e la sua chiamato string-join:

(string-join '("a" "1" "b" "2" "c" "3") "") 
=> "a1b2c3" 

Citando le documentation:

(string-join strs     
      [sep     
       #:before-first before-first     
       #:before-last before-last    
       #:after-last after-last]) → string? 

strs : (listof string?) 
sep : string? = " " 
before-first : string? = "" 
before-last : string? = sep 
after-last : string? = "" 

aggiunge le stringhe in strs, inserendo sep fra ciascuna coppia di stringhe in STR. before-last, before-first e after-last sono analoghi agli ingressi di add-between: specificano un separatore alternativo tra le ultime due stringhe, una stringa di prefisso e una stringa di suffisso rispettivamente.

+0

Piumino: cura di commentare? –

+0

Anche questo è implementato in Guile. – musarithmia

Problemi correlati