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