Mam ciąg w Clojure i postać, którą chcę wstawić między n-tą i (n + 1) st. Znakiem. Na przykład: Powiedzmy, że string jest "aple" i chcę wstawić kolejny "p" między "p" i "l".Clojure: Idiomatyczny sposób wstawiania znaku w ciąg znaków
(prn
(some-function "aple" "p" 1 2))
;; prints "apple"
;; ie "aple" -> "ap" "p" "le" and the concatenated back together.
mi znalezienie tego nieco trudne, więc postać Brakuje mi informacji o kilka przydatnych funkcji() może ktoś proszę mi pomóc napisać „Some-funkcja” powyżej, który pobiera ciąg, inny ciąg, pozycja początkowa i pozycja końcowa i wstawia drugi ciąg do pierwszego między pozycją początkową a pozycją końcową? Z góry dziękuję!
Przy okazji różnica prędkości jest dość wyraźna. Szybki test porównawczy Criterium mówi mi, że '(str-insert" aple "" p "1)' trwa około 180 ns, co jest 12,5 razy mniejsze niż 2,25 μs w wersji opartej na seq. –
Uwaga 'subs' opakowuje' podła '' '' '' '' 'StringBuilder'. Nie sądzę, że można to zrobić lepiej. –