gpt4 book ai didi

vector - 获取向量的区间

转载 作者:行者123 更新时间:2023-12-02 09:07:46 26 4
gpt4 key购买 nike

我想在Scheme中取一个向量的区间。我知道有一个名为 vector->values 的过程,但似乎它单独返回每个元素,而我想将结果作为向量获取。我怎样才能实现这个目标?

> (vector->values (vector 1 2 3 4 5) 0 3)
1
2
3

当我需要时:

#(1 2 3)

最佳答案

如果您使用 PLT,您可以通过一些简单的方法来获取此信息:

(define (subvector v start end)
(list->vector (for/list ([i (in-vector v start end)]) i)))

(define (subvector v start end)
(build-vector (- end start) (lambda (i) (vector-ref v (+ i start)))))

(define (subvector v start end)
(define new (make-vector (- end start)))
(vector-copy! new 0 v start end)
new)

最后一个可能是最快的。没有这样的内置操作的原因是人们通常不这样做。当您在 Scheme 中处理向量时,通常会这样做,因为您想要优化某些内容,因此返回向量和范围而不是分配新的向量和范围更为常见。

(如果您认为这有用,请在 PLT 邮件列表上建议它。)

关于vector - 获取向量的区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com