17:13:15Bikei'm implementing the sequence extension and looking for examples of libraries that define their own types of sequence. the paper mentions flexichain as an example.
17:13:44Bikebut it looks like flexichains aren't used with any of the derived sequence operators like map or find.
17:36:24Bikebut if you're not using the CL sequence functions, the etexnsion isn't that interesting. it just lets you name your accessors length and elt, which isn't nothing, but it's not as useful
18:46:47shka_Bike: I have implemented sequences based on RRB vectors
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