想请问一下怎么样增加或删除原来 string 的元素?
A string is a fixed-length array of characters.字符串是固定长度的字符数组。
为什么要固定长度?要删除元素都像这样生成新的 string ,徒然增加开销
(define str "hello world")
(let ([str (string-append ;拼接字符串
(substring str 0 4) ;取前半部分
(substring str 5))]) ;取后半部分
str) ;=>"hell world"
我试着把字符串转换成 mutable list 或者 hashtable 来操作,很麻烦
fp为了避免副作用,尽量保持变量的不变性?为什么Racket的 string 不能像rust、C++一样用成员函数:
let s = String::from("hello world");
s.remove(4);
在racket的data-lib库里面发现了gvector(可增长向量)以及Skip Lists(可以修改元素,但没有list->skip-list这种函数,需要手动创建)。还想看看各位hacker们是怎么解决这个问题的