chicken-users
[Top][All Lists]
Advanced

[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).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]