通过附加向量在方案中突变向量

ajm*_*tin 4 scheme functional-programming vector mit-scheme

我不知道Scheme中向量的底层实现,因此不知道如何编写 vector-append!

原型:

(define (vector-append! vect . vects)
  ; definition here 
  )
Run Code Online (Sandbox Code Playgroud)

PS首选使用向量列表,因为vector-ref是一个恒定时间操作[src]

Ósc*_*pez 5

您无法在创建矢量后调整其大小,因此vector-append!无法将其实现为就地操作.您可以做的是创建一个大小等于所有子向量大小之和的新向量,其中所有子向量中的元素将一个接一个地复制.

使用vector-grow作为启动程序,并从那里工作.您将不得不使用索引来获得有效的解决方案.