PS Admittedly, the issue is very subtle, which is why the fundamental criticism is not against a special form as introduced by SRFI 17, but against naming it `set!'. Am Fr., 19. Aug. 2022 um 12:42 Uhr schrieb Marc Nieper-Wißkirchen <xxxxxx@gmail.com>: > > Am Fr., 19. Aug. 2022 um 12:25 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>: > > > > > See the message at > > > https://srfi-email.schemers.org/srfi-17/msg/2778561/ and the following > > > discussion for why there are good arguments against a SRFI-17-style > > > addition to Scheme. I definitely subscribe to these arguments. Per, > > > the author of SRFI 17, does not. But we already had such a discussion > > > and continuing it should happen somewhere else. > > > > There are two distinct questions here: > > > > 1) Should set! be able to set things other than variables? > > > > 2) Should references/places be first-class or implied? > > > > By my reading, your argument is that Scheme is cleaner (from a > > functional programming standpoint?) if references/places are first class. > > A locative is a first-class object. > > A place would be, like a variable, not first-class. > > "set!" in Scheme is syntax and does not mutate its argument (which is > some syntax) but the location which the syntactic argument references. > > "set-car!" (and friends) are procedures taking a first-class > (evaluated) argument and mutating it. > > It's not about that all entities should be first-class. Variables > aren't, for example. > > As I don't want to repeat all arguments, let me cite one I find > compelling: https://srfi-email.schemers.org/srfi-17/msg/2778611/.