Am 29.10.2015 um 20:49 schrieb Dan Leslie:
> Whatever works with the doto macro?
Looks like `doto` expects it's first `var` argument to be mutable and
returns the same reference. This would argue in favor of the srfi-69
ordering. (Which is available via the -table API atop.)
However those "binding-set"s are immutable. To work with the `doto`
macro the latter would have to return the result of the application of
`proc` instead of `var`.
> Sent from my BlackBerry 10 smartphone.
> Original Message
> From: Jörg F. Wittenberger
> Sent: Thursday, October 29, 2015 12:47 PM
> To: chicken-users
> Subject: [Chicken-users] Which API to use (llrb)?
>
> 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
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/chicken-users
>
_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users