19:20:54Bikewhat are the operations on traversables? just across?
19:22:18Bikebeach: i don't know what you use a gap buffer thing for, i guess. other than text editing, and i don't know hwat kind of operations you need for that
19:24:45shka_Bike: across and traverse, they are the same for the purpose of the containers, but there are also ranges, traverse will mutate range, across will not
19:26:06shka_cl-ds:xpr form will create forward-range for instance
19:26:36shka_oh, right i forgot, traversables can be also cloned
19:27:14Bikeyou're using terms that i don't know the meaning of
19:27:42shka_most of traversables can be also reset! but this is not part of the protocol
19:28:09shka_Bike: docs are not exactly well written, but i promise i was trying my best
19:29:44shka_anyway, gist of this is that there are containers, cl-ds:sequences are containers, there is protocol constructed around inheritance order traversable->fundamental-container->fundamental-sequence->mutable|functional|traversable
19:30:18Bikeyeah, i saw that much, which is why i asked about the protocol for traversables
19:30:22shka_traversable means that you can call traverse, across and clone
19:30:53shka_fundamental-container means you can also use cl-ds:at and cl-ds:size
19:31:11shka_cl-ds:at is like cl:elt, cl-ds:size is like length
19:31:45shka_then mutable|functional|transactional variants provide means to modify the content of the container
19:32:05Bikeif you had a set object, would that be a traversable but not a container? since at doesn't make sense
19:32:45shka_at would return either T or NIL if either element is in the set or not
4:19:54beachBike: When I wrote Flexichain, the possibility of defining extended sequence types did not exist, so I didn't have the sequence functions in mind for the client code using Flexichain.
4:20:32beachBike: I would have to go back and look at Climacs and see what uses could be replaced by calls to the sequence functions.