World's simplest Scheme interface to sqlite3
John Cowan
(29 Aug 2020 03:00 UTC)
|
||
(missing)
|
||
(missing)
|
||
Fwd: World's simplest Scheme interface to sqlite3
John Cowan
(29 Aug 2020 17:57 UTC)
|
||
Re: Fwd: World's simplest Scheme interface to sqlite3
Lassi Kortela
(29 Aug 2020 18:44 UTC)
|
||
Re: Fwd: World's simplest Scheme interface to sqlite3
John Cowan
(29 Aug 2020 22:37 UTC)
|
||
SQL API sketch with some code
Lassi Kortela
(30 Aug 2020 13:24 UTC)
|
||
Re: SQL API sketch with some code
Lassi Kortela
(30 Aug 2020 13:46 UTC)
|
||
Re: SQL API sketch with some code
John Cowan
(30 Aug 2020 20:47 UTC)
|
||
Re: SQL API sketch with some code
Lassi Kortela
(31 Aug 2020 05:02 UTC)
|
||
Re: SQL API sketch with some code
Lassi Kortela
(31 Aug 2020 05:14 UTC)
|
||
Re: SQL API sketch with some code
John Cowan
(31 Aug 2020 15:38 UTC)
|
||
Re: SQL API sketch with some code Lassi Kortela (31 Aug 2020 15:54 UTC)
|
||
Re: SQL API sketch with some code
John Cowan
(31 Aug 2020 17:12 UTC)
|
||
Re: SQL API sketch with some code
Lassi Kortela
(31 Aug 2020 19:20 UTC)
|
||
Reflection on the database schema
Lassi Kortela
(30 Aug 2020 13:35 UTC)
|
||
Re: Reflection on the database schema
John Cowan
(30 Aug 2020 19:51 UTC)
|
||
Re: Fwd: World's simplest Scheme interface to sqlite3
Alaric Snell-Pym
(31 Aug 2020 22:03 UTC)
|
||
Re: Fwd: World's simplest Scheme interface to sqlite3
Lassi Kortela
(02 Sep 2020 08:38 UTC)
|
||
Re: Fwd: World's simplest Scheme interface to sqlite3
John Cowan
(02 Sep 2020 17:09 UTC)
|
||
SQL statement caching
Lassi Kortela
(02 Sep 2020 17:21 UTC)
|
||
Re: SQL statement caching
John Cowan
(02 Sep 2020 18:13 UTC)
|
||
Re: SQL statement caching
Lassi Kortela
(02 Sep 2020 18:53 UTC)
|
||
Re: World's simplest Scheme interface to sqlite3
Lassi Kortela
(29 Aug 2020 11:40 UTC)
|
||
Re: World's simplest Scheme interface to sqlite3
Ivan Raikov
(29 Aug 2020 04:06 UTC)
|
||
Re: World's simplest Scheme interface to sqlite3
Lassi Kortela
(29 Aug 2020 11:24 UTC)
|
||
Re: World's simplest Scheme interface to sqlite3
John Cowan
(29 Aug 2020 17:47 UTC)
|
||
Re: World's simplest Scheme interface to sqlite3
Lassi Kortela
(29 Aug 2020 18:23 UTC)
|
||
Re: World's simplest Scheme interface to sqlite3
John Cowan
(29 Aug 2020 22:15 UTC)
|
||
Re: World's simplest Scheme interface to sqlite3
Amirouche Boubekki
(29 Aug 2020 07:33 UTC)
|
||
Re: World's simplest Scheme interface to sqlite3
Lassi Kortela
(29 Aug 2020 11:37 UTC)
|
> mapfun and accumulator arguments to be optional, which means they have > to be at the end. > > Actually, they don't need to be at the end. Mapfun and accumulator are > procedures, which can't be parameter objects. So, you look at the > rest-args, see if the car is a procedure, and if so grab it and > its successor, and now the real params are in the cddr. Very simple. I > think there are already a couple of SRFIs that work like this, with an > optional argument at the beginning even, provided it is recognizable by > its type. I intensely dislike that kind of magic argument parsing :) I don't think it's simple. Argument values can come from variables, and Scheme is dynamically typed, so a variable bound to a different type of value than expected can transparently change the way the argument list is unpacked. Not elegant. A similar misfeature exists in Unix command line option parsing. Some popular parsers let you define options that take optional arguments -- doubly optional! All to save a few keystrokes in some corner case. Keyword arguments (or plists, which are almost equivalent) are the standard way to do anything fancy with argument lists. Keywords need to be spelled out so they act as documentation. That's good. > I have a pre-SRFI for `identity` and a bunch of other small handy > abstract things: > https://github.com/johnwcowan/r7rs-work/blob/master/CombinatorsCowan.md. Looks nice enough! I'd like to look for prior art for those in the Lisp and ML families and add to the table at <https://lispunion.org/rosetta/>. Maybe there are some semi-standard names. In particular, I lament that CL chose such a long name as `constantly` for such a useful procedure; maybe there's a shorter existing name. > 2) a `values` implementation where the single-value case (values a) > returns `a` with no wrapper object. > > #2 is a requirement going back to R5RS: (values a) must be the same as > a (in the sense of eqv?). Nice! > A good software tool, says one of the Unix gurus, is one that gets used > in a way the creator never foresaw. For example closures, S-expressions, and GC, none of which belong in the Unix pantheon :)