我是新來的計劃 - 我目前正在嘗試學習語法和如何遞歸思考。我來到一個向量部分,並希望能夠通過某種循環(當然使用遞歸)在我的向量中設置值。我有這個變量:方案:使用遞歸填充矢量?
(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