Hi all,

I did some more refinements to the LLRB-code I recently posted here.

However I got stuck on the inability to decide which API to use.

The idea is to have a type "binding-set" (is there a better name?) as an
alternative t alists.

However when it comes to `fold` I'm not sure if it is better to follow
the srfi-1 argument order (combiner-initial-set) or the srfi-69 style
order (set-combiner-initial).

At one hand trying to be a "drop-in" for lists it would better not
change the argument order wrt. srfi-1.

However the fold procedure from srfi-1 takes two arguments, the element
(for alists the key-value-pair) and the accumulated value.  The fold
operation for "binding-set" is to be called with three arguments, key,
value and result-so-far.  Just like srfi-69's hash-table-fold.

Therefore being 100% drop-in is not possible anyway.  Therefore it might
be better to follow to srfi-69 order.

So which line of reasoning to follow?  Which one of the following is
APIs "better"?  Any reasoning I'm not aware of?

Best

/Jörg


A: srfi-69

<procedure>(binding-set-fold set proc nil)</procedure>

{{Proc}} must be a procedure of three arguments.  It is invoked for
each element with the key, value and the accumulated value (nil for
the first element).

B: srfi-1

<procedure>(binding-set-fold proc nil set)</procedure>

{{Proc}} must be a procedure of three arguments.  It is invoked for
each element with the key, value and the accumulated value (nil for
the first element).

_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to