Ho una stringa in Clojure e un carattere che desidero inserire tra il carattere ennesimo e (n + 1). Ad esempio: diciamo che la stringa è "aple" e voglio inserire un'altra "p" tra "p" e "l".Clojure: modo idiomatico di inserire un carattere in una stringa
(prn
(some-function "aple" "p" 1 2))
;; prints "apple"
;; ie "aple" -> "ap" "p" "le" and the concatenated back together.
mi sto trovando questo un po 'impegnativo, quindi immagino che mi manca un po' di informazioni sulla funzione utile (s) Qualcuno può aiutarmi a scrivere il "alcuni funzione" di cui sopra che prende una stringa, un'altra stringa, una posizione iniziale e una posizione finale e inserisce la seconda stringa nella prima tra la posizione iniziale e la posizione finale? Grazie in anticipo!
A proposito, la differenza di velocità è abbastanza pronunciata. Un rapido benchmark di Criterium mi dice '(str-insert" aple "" p "1)' richiede circa 180 ns, che è 12,5x in meno rispetto ai 2,25 μs della versione seq. –
Nota 'subs' avvolge la' substring' di Java e 'str' usa' StringBuilder'. Non penso sia possibile fare di meglio. –