[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] Which API to use (llrb)?
From: |
Jörg F. Wittenberger |
Subject: |
[Chicken-users] Which API to use (llrb)? |
Date: |
Thu, 29 Oct 2015 20:46:25 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux armv7l; rv:31.0) Gecko/20100101 Icedove/31.7.0 |
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] Which API to use (llrb)?,
Jörg F. Wittenberger <=