When I put down the crack pipe
I realize this would be too dangerous/random to slipstream into regular assignments (which could be produced by programmatic code).
So maybe the actual realization here is that whatever syntax is used...it really needs to be semiotic and use the delimiters/sigils directly, and not be too much worse than such fluent assignments would appear.
Why LET and not something like (say) HOOK that acted like it but only accepted reduced case entities...leaving ordinary assignment out of it? Maybe HOOK is implicitly a LET?
>> foo: proc [x] [
hook (): proc [group] [print to block! group]
("seriously, folks...why not?")
("by the way, X is" x)
]
>> foo 1000 + 20
seriously, folks...why not?
by the way, X is 1020
I'm hand-waving a bit here about the LET vs. override. But my point is you can probably get in striking distance of the "aesthetic" I'm suggesting, without compromising rank-and-file assignment.
And dumb as this may seem: HOOK could defeat the things you wouldn't think should work:
>> hook ': proc [quoted] [print ["DUMPING:" mold unquote quoted]]
>> '(a b c)
DUMPING: (a b c)
This completely ignores the fact that ': is a quoted colon, not a "Set-Apostrophe". But it could just be the "picture" of what hook takes, how it encodes the desire to override quote.
(I'm not saying this is a great idea, I'm just saying that doors open when you are willing to use a literal slot as "looks like" vs. demanding it follow the ordinary rules of assignments.)
Or Maybe It's A Form Of Dialected Function Call?
>> hook:(): proc [group] [print join to block! group "!!!"]
>> ("Hello World")
Hello World !!!
>> hook:': func [quoted] [print ["DUMPING:" mold unquote quoted]]
>> '(a b c)
DUMPING: (a b c)
I haven't thought of the idea of CHAIN! ending in blank yet as a dialected call, but, hey. It could be a way to make "SET-looking" things, and it solves the "how to get a quote mark there" problem.