s7 suggestion bil@xxxxxx (29 Oct 2019 13:40 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 15:15 UTC)
Re: s7 suggestion bil@xxxxxx (29 Oct 2019 15:56 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 16:19 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 16:32 UTC)
Re: s7 suggestion bil@xxxxxx (29 Oct 2019 17:54 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 18:07 UTC)
Re: s7 suggestion John Cowan (01 Nov 2019 21:27 UTC)
Re: s7 suggestion Lassi Kortela (01 Nov 2019 21:36 UTC)
Re: s7 suggestion John Cowan (01 Nov 2019 23:03 UTC)
&key vs :key in the lambda list Lassi Kortela (01 Nov 2019 23:17 UTC)
Re: &key vs :key in the lambda list John Cowan (01 Nov 2019 23:18 UTC)
Re: &key vs :key in the lambda list Lassi Kortela (01 Nov 2019 23:27 UTC)
Syntax for hygienic vs non-hygienic keywords Lassi Kortela (01 Nov 2019 23:33 UTC)
Re: allow-other-keys bil@xxxxxx (29 Oct 2019 19:51 UTC)
Re: s7 suggestion Marc Nieper-Wißkirchen (29 Oct 2019 16:33 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 16:53 UTC)
Re: s7 suggestion bil@xxxxxx (29 Oct 2019 17:10 UTC)
Including 177 in s7? Lassi Kortela (29 Oct 2019 17:34 UTC)

Re: s7 suggestion Lassi Kortela 29 Oct 2019 16:19 UTC

> so the local variable is happy:
>
> (define xyz
>    (let ((base 123))
>      (keyword-lambda ((offset))
>        (+ base (or offset 0)))))
>
> (writeln (xyz)) ; 123
> (writeln (keyword-call xyz (offset 3))) ;126

Great. Talk to any Scheme implementor about a problem and they are
already aware of it :) And usually have a solution in mind as well.

> (with-let (unlet) ...) goes underneath the global environment, so to speak,
> giving you the built-in startup values, so even set! at the top level won't
> affect it.  There are, of course, many other choices.  I added some more
> examples to s7.html this morning.

Aha, so instead of temporarily "unwinding" the stack of current lexical
environments, it *adds* a copy of the default environment as the
innermost environment. Brilliant.

> I hate to admit I have no idea what docker is -- I'll check it out.

It's a way to run isolated Linux containers inside a Linux system (or
inside a Linux emulation layer on Windows/MacOS). The containers share
the same Linux kernel as the host, but have separate userlands (thanks
to isolation of the file system and process namespaces using Linux
kernel features called "cgroups" and "namespaces"). It's a bit like Plan
9 brute-forced onto stock Linux :) But terrific for safely and easily
spinning up foreign software from the net. FreeBSD jails and Solaris
zones are two similar isolation mechanisms, but are not (yet) as
user-friendly as Docker.