[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ANN] guile-msgpack: MessagePack for GNU Guile (+ help needed)
From: |
HiPhish |
Subject: |
Re: [ANN] guile-msgpack: MessagePack for GNU Guile (+ help needed) |
Date: |
Thu, 20 Sep 2018 01:32:12 +0200 |
John Cowan wrote:
> By convention, Scheme procedures whose only side effect is on a port
> don't use the ! in their names: we write `read`, `write`, `display`, not
> `read!`, `write!`, `display!`.
>
> I would suggest calling them pack-and-write and read-and-unpack;
> you can leave out the "and-" if you think those are too long.
That's a really good point, I did not think of. In my Racket implementation I
called the functions without exclamation mark, but that implementation lacks
pure procedures.
> The Scheme community is small enough that doing a little bit to make
> libraries
> more portable is worthwhile. I'd use R6RS `library` instead of
> Guile-specific
> `define-module`, and maybe put the code proper into a separate file from the
> module furniture. (To use `include` or any other Guile-specific procedure
> in an R6RS library, add `(only (guile) include)` to the imports list.)
> Using
> Guile-specific procedures is not usually a problem, as there are probably
> equivalents in other Schemes.
How popular is r6rs anyway? From what I gathered it was pretty badly received
and r7rs small was intentionally designed to be less ambitious, while the
upcoming r7rs will be larger than even Common Lisp.
> Usually there's just using a constructor wrapper that checks the types
> before
> calling the real constructor (`cons` in this case).
OK, that was my first idea, but I thought that there might be perhaps
something more idiomatic.
> Returning a list of values is idiomatic. It is actually possible for a
> caller to
> receive multiple values without knowing how many it's going to get, but it's
> probably more trouble than it's worth in this case.
Yes, after writing my original email I found out how to bind an unknown number
of values, but there doesn't seem to be a way of returning an unknown number
of values.
> GoFundMe seems like the right thing.
GoFundMe is about fundraising campaigns, I was thinking something along the
lines of a tip-jar where you can chip in a little if you want.