Documentation ¶
Overview ¶
Copyright 2018 the u-root Authors. All rights reserved Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. Package vector implements persistent vector.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Iterator ¶
type Iterator interface { // Elem returns the element at the current position. Elem() interface{} // HasElem returns whether the iterator is pointing to an element. HasElem() bool // Next moves the iterator to the next position. Next() }
Iterator is an iterator over vector elements. It can be used like this:
for it := v.Iterator(); it.HasElem(); it.Next() { elem := it.Elem() // do something with elem... }
type Vector ¶
type Vector interface { // Len returns the length of the vector. Len() int // Index returns the i-th element of the vector, if it exists. The second // return value indicates whether the element exists. Index(i int) (interface{}, bool) // Assoc returns an almost identical Vector, with the i-th element // replaced. If the index is smaller than 0 or greater than the length of // the vector, it returns nil. If the index is equal to the size of the // vector, it is equivalent to Cons. Assoc(i int, val interface{}) Vector // Cons returns an almost identical Vector, with an additional element // appended to the end. Cons(val interface{}) Vector // Pop returns an almost identical Vector, with the last element removed. It // returns nil if the vector is already empty. Pop() Vector // SubVector returns a subvector containing the elements from i up to but // not including j. SubVector(i, j int) Vector // Iterator returns an iterator over the vector. Iterator() Iterator }
Vectors from elvish. I'm not convinced a lot of the claims were correct so I stripped the comment. I'm not sure how much of what this does we need, e.g. SubVector, but we'll see.
var Empty Vector = &vector{}
Empty is an empty Vector.
Click to show internal directories.
Click to hide internal directories.