[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [External] : Re: Shrinking the C core
From: |
Drew Adams |
Subject: |
RE: [External] : Re: Shrinking the C core |
Date: |
Mon, 11 Sep 2023 16:12:22 +0000 |
I thought my previous post in this thread would
likely be my only such, but I'd like now to add a
point, FWIW.
Richard, you spoke about implementing support for
keyword args in ~CL (Lisp-machine Lisp code that
you wrote), and how you found their presence to be
a bother for implementers and (I think) users.
I mentioned that I appreciated _using_ keyword args
with CL, long ago. I'll add that it was especially
in code that I wrote that I found them useful (as
opposed to their presence in standard CL code).
That is, for _users_ of my code (but including me,
while developing and testing). And especially for
functions that allowed for more than a few args.
In a nutshell, with keyword args a single function
can replace multiple related/similar functions.
And when you have multiple things to juggle, it
helps to name them, and it helps to not need to
address them in a particular order.
Here's an analogy:
Imagine Lisp without &optional args. You'd end by
defining more functions of the same "family".
IME, the same difference applies to the absence of
keyword args. You end up defining more functions,
for the convenience of not having to specifying a
zillion nil args. Plus you have to pay attention
to arg order.
Of course sometimes it makes sense to define a
separate function or two, to cover particular
common use cases. But in general optional args
are handy, and so are keyword args, for the same
reason: many functions in one - a single name to
rule them all. ;-)
Now, if you always _had to_ use keyword args, so
you could _never_ just provide args without names
(in the proper order), then that would definitely
be an unnecessary bother. We probably all agree
about that.
In Lisp all args to functions are evaluated, and
there really is no user-level dependence on the
order of their evaluation. Given that, Occam says
that arg order doesn't matter, and there's no real
_need_ to specify args in an order, filling in nil
args as needed to get to the last optional arg you
need.
From a user point of view, being able to have the
option of specifying an arg by its position OR by
its name is just a plus - I don't see any downside.
From the point of view of a language implementer
things might be different, of course.
- Re: Shrinking the C core, (continued)
- RE: [External] : Re: Shrinking the C core, Drew Adams, 2023/09/08
- Re: [External] : Re: Shrinking the C core, Arthur Miller, 2023/09/09
- Re: [External] : Re: Shrinking the C core, Eli Zaretskii, 2023/09/09
- Re: [External] : Re: Shrinking the C core, Arthur Miller, 2023/09/09
- RE: [External] : Re: Shrinking the C core, Drew Adams, 2023/09/09
- Re: [External] : Re: Shrinking the C core, Richard Stallman, 2023/09/10
- Re: [External] : Re: Shrinking the C core, João Távora, 2023/09/11
- RE: [External] : Re: Shrinking the C core,
Drew Adams <=
- Re: [External] : Re: Shrinking the C core, Tomas Hlavaty, 2023/09/11
- Re: [External] : Re: Shrinking the C core, João Távora, 2023/09/11
- Re: [External] : Re: Shrinking the C core, Tomas Hlavaty, 2023/09/12
- Re: [External] : Re: Shrinking the C core, João Távora, 2023/09/12
- Re: [External] : Re: Shrinking the C core, Emanuel Berg, 2023/09/15
- Re: [External] : Re: Shrinking the C core, Eric S. Raymond, 2023/09/11
- Re: [External] : Re: Shrinking the C core, Arthur Miller, 2023/09/11
- Re: [External] : Re: Shrinking the C core, Gerd Möllmann, 2023/09/12
- Re: [External] : Re: Shrinking the C core, Arthur Miller, 2023/09/12
- Re: [External] : Re: Shrinking the C core, Arthur Miller, 2023/09/12