Ad esempio, ho (list "a" "1" "b" "2" "c" "3")
.Come trasformare un elenco di stringhe in una stringa nello schema?
Ora voglio trasformare questa lista in una "a1b2c3"
.
Come faccio?
Grazie.
Ad esempio, ho (list "a" "1" "b" "2" "c" "3")
.Come trasformare un elenco di stringhe in una stringa nello schema?
Ora voglio trasformare questa lista in una "a1b2c3"
.
Come faccio?
Grazie.
(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))
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
, inserendosep
fra ciascuna coppia di stringhe in STR.before-last
,before-first
eafter-last
sono analoghi agli ingressi diadd-between
: specificano un separatore alternativo tra le ultime due stringhe, una stringa di prefisso e una stringa di suffisso rispettivamente.
Piumino: cura di commentare? –
Anche questo è implementato in Guile. – musarithmia