In favor of explicit argument
Shiro Kawai
(09 Aug 2020 01:33 UTC)
|
Re: In favor of explicit argument
Lassi Kortela
(09 Aug 2020 06:46 UTC)
|
Re: In favor of explicit argument Marc Nieper-Wißkirchen (09 Aug 2020 09:27 UTC)
|
Re: In favor of explicit argument
Adam Nelson
(10 Aug 2020 22:25 UTC)
|
Re: In favor of explicit argument
Shiro Kawai
(10 Aug 2020 23:46 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(11 Aug 2020 07:58 UTC)
|
Re: In favor of explicit argument
Alex Shinn
(11 Aug 2020 01:29 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(11 Aug 2020 07:17 UTC)
|
Re: In favor of explicit argument
Jim Rees
(11 Aug 2020 16:45 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(11 Aug 2020 16:57 UTC)
|
Re: In favor of explicit argument
Alex Shinn
(12 Aug 2020 02:20 UTC)
|
Re: In favor of explicit argument
John Cowan
(12 Aug 2020 02:49 UTC)
|
Re: In favor of explicit argument
Arthur A. Gleckler
(12 Aug 2020 03:23 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(12 Aug 2020 13:29 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(12 Aug 2020 19:46 UTC)
|
Re: In favor of explicit argument
Alex Shinn
(13 Aug 2020 00:40 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(13 Aug 2020 07:18 UTC)
|
Re: In favor of explicit argument
Alex Shinn
(14 Aug 2020 01:24 UTC)
|
Re: In favor of explicit argument
Adam Nelson
(13 Aug 2020 01:13 UTC)
|
Re: In favor of explicit argument
John Cowan
(13 Aug 2020 01:53 UTC)
|
Re: In favor of explicit argument
Adam Nelson
(13 Aug 2020 03:09 UTC)
|
Re: In favor of explicit argument
Alex Shinn
(13 Aug 2020 03:16 UTC)
|
Re: In favor of explicit argument
John Cowan
(13 Aug 2020 03:31 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(13 Aug 2020 08:04 UTC)
|
Re: In favor of explicit argument
Jim Rees
(13 Aug 2020 18:24 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(13 Aug 2020 20:05 UTC)
|
Re: In favor of explicit argument
John Cowan
(14 Aug 2020 02:41 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(14 Aug 2020 06:34 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(14 Aug 2020 13:30 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(14 Aug 2020 14:08 UTC)
|
Re: In favor of explicit argument
Alex Shinn
(15 Aug 2020 22:56 UTC)
|
Re: In favor of explicit argument
Marc Nieper-Wißkirchen
(16 Aug 2020 07:55 UTC)
|
Re: In favor of explicit argument
Alex Shinn
(14 Aug 2020 02:29 UTC)
|
I can only agree with you here. The code does not only become easier to read, it will also eliminate an irregularity, which is always good: Without any exceptional rule, no "<>" would read as "zero values", which, while probably not used very often, would be the obvious meaning. The regular version with no values has some uses for thunks. (chain-lambda (a) (b <>)) would translate into the thunk (lambda () (b (a))). (If one really thinks that a macro with an implicit "<>" is needed, such a macro should be some supplementary macro, e.g. chain-last, and not one of the central macros in this SRFI.) Am So., 9. Aug. 2020 um 08:46 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>: > > > In Clojure I use threading macros often, but one thing that always > > bothers me is that the argument position is implicit (for most of the > > family of macros). It is ok while working on it, but once I leave the > > coding for a while and then look at the code, it's extremely confusing. > > +1 > > > I ended up always marking the inserted argument position with commas, > > which are treated as whitespaces in Clojure. > > > > srfi-197 allows to use <> as the insertion points, and I can always use > > it even the argument position is the last position: > > > > (chain (a b) (c d <>) (e f <>)) > > This is a nice notation. > > I've always found the <> marker a bit confusing since it stands for "not > equal" in Pascal and many other languages. But it's inherited from SRFI > 26 `cut` and `cute` which I guess set a strong precedent. Starting from > scratch, I would prefer underscore which is a placeholder marker in many > languages: > > (chain (a b) (c d _) (e f _)) > > > And I wonder if we gain anything by allowing <> in the last position to > > be omitted. > > > > Sure it may shorten the code a bit. However, the spec is effectively > > the same as "show the argument position with <> except when it's the > > last position, in which case you can omit it." It looks somewhat an > > arbitrary and irregular rule. > > +1 > > > Code is read far more times than written. Saving a few keystrokes > > trading off readability doesn't seem a good deal. > > > > Is everyone comfortable with implicit argument? Certainly, when I see > > (cons "x"), I can see there's an implicit argument, since the fact that > > cons takes two arguments is engraved in my brain (the same circuit fires > > when I'm reading Haskell code). > > But it isn't always necessary the case, e.g. (list 'a 'b) > > Good point.