From: Lassi Kortela <lassi@lassi.io>
To: Sascha Ziemann <ceving@gmail.com>,
kawa mailing list <kawa@sourceware.org>
Subject: Re: Time for a new release? 3.1.2?
Date: Mon, 9 Jan 2023 11:03:17 +0200 [thread overview]
Message-ID: <a55ab139-ce90-6e00-627f-96393ff02d12@lassi.io> (raw)
In-Reply-To: <CAGUt3y7RA17OPXdOO8YCJH1NSxKzNM5exnMZXx7kwafeafTmgg@mail.gmail.com>
>> Scheme needs some way to define "interfaces"/"traits" that multiple data-types
>> can implement. Many Scheme implementations (including Kawa) have that, but a
>> general portable solution is highly desired. Without that, there is no point
>> in piling on more and more libraries for more and more data types.
> This requires generics and this requires method dispatching.
>
> Many Schemers like to pay the price for dynamic types, but are scared by the
> price for dynamic dispatching. I am still astonished why this is the case.
The efficiency debate can only be settled by profiling and benchmarking.
> Any ideas?
IMHO the right solution is:
- Specify generic collection procedures in RnRS.
- Those procedures MUST handle all the collection types in RnRS.
- The procedures SHOULD also handle extra collection types provided by
the Scheme implementation (from SRFIs, etc.)
- The implementation MAY support user-defined generic procedures. When
it does, the standard collection procedures SHOULD be defined using this
framework so that users can extend them.
The RnRS number procedures are already generic, and work according to
these principles (e.g. Kawa extends them to support quaternions). This
approach is simple, flexible, and has stood the test of time.
next prev parent reply other threads:[~2023-01-09 9:03 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-28 17:53 Duncan Mak
2022-09-29 4:38 ` Per Bothner
2022-09-29 15:18 ` Arvydas Silanskas
2022-10-03 11:36 ` Arvydas Silanskas
2022-10-21 9:01 ` Arvydas Silanskas
2022-10-27 4:50 ` Shawn Wagner
2022-12-06 9:07 ` Arvydas Silanskas
2023-01-05 21:34 ` Per Bothner
2023-01-05 22:02 ` Damien Mattei
2023-01-06 12:16 ` Lassi Kortela
2023-01-08 18:11 ` Sascha Ziemann
2023-01-09 9:03 ` Lassi Kortela [this message]
2023-01-09 9:42 ` Arvydas Silanskas
2023-01-09 10:51 ` Lassi Kortela
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a55ab139-ce90-6e00-627f-96393ff02d12@lassi.io \
--to=lassi@lassi.io \
--cc=ceving@gmail.com \
--cc=kawa@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).