我是新来的计划 - 我目前正在尝试学习语法和如何递归思考。我来到一个向量部分,并希望能够通过某种循环(当然使用递归)在我的向量中设置值。我有这个变量:方案:使用递归填充矢量?
(define my-vector (make-vector 5))
然后,我想使用vector-set!
过程填充。通常,在C++(只有其他语言我真正熟悉),这将迭代的方式进行,例如
//...
std::vector<int> myVector;
for(int i = 0; i < 5; ++i) // populate the vector
myVector.push_back(i);
std::vector<int>::const_iterator outIter;
for(outIter = myVector.begin();
outIter != myVector.end(); ++outIter)
std::cout << *outIter << " ";
std::cout << std::endl;
//...
但是,我知道,这种事情应该通过递归方案来完成。什么是递归的populate-vector
程序可能看起来像?
Scheme中的向量与C++中的vector不同。 Scheme中的向量在创建时的大小是固定的,并且不能调整大小;有点像在C++ – newacct
中用'new int [size]'分配的数组。是的,我发现'vector'必须用固定的大小来定义,与C++中的''不同。我只是想知道如何在Scheme中抽象出“填充某个容器”的想法。 –
dtg