<div dir="ltr"><br><div>Cool! But wouldn't this be a post-fix operator? For true circumfix, the inside must be the receiver, no?</div><div><br></div><div>T</div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Jul 27, 2016 at 12:32 PM Michael Homer <<a href="mailto:michael.homer@ecs.vuw.ac.nz">michael.homer@ecs.vuw.ac.nz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Jul 27, 2016 at 10:23 PM, James Noble <<a href="mailto:kjx@ecs.vuw.ac.nz" target="_blank">kjx@ecs.vuw.ac.nz</a>> wrote:<br>
> On 27/07/2016, at 22:14PM, Tijs van der Storm <<a href="mailto:storm@cwi.nl" target="_blank">storm@cwi.nl</a>> wrote:<br>
>> Moreover, I can't define my own brackety things, so the analogy with operators is only partial.<br>
><br>
> you could once, in Kernan.<br>
><br>
>> Btw, reminds me, I once had a language design where , (comma) was just an infix binary operator, and bracketing using [] was unary around-fix operator. The comma then would create a shallow line-up like object, the bracket converted it to a list/array; same with {} for sets. (You weren't allowed to use comma expressions in param lists directly, but with parentheses you'd just get the shallow line-up). The only problem is that you couldn't write empty lists or set using the bracket notation.<br>
><br>
> Ha! Andrew will probably tell us Smalltalk does that.<br>
> Self did something similar with && which was a sort of "flat cons"<br>
> it lifed two objects into a "collection building" except that two collection buildrers flattened themselves out (aka flat cons). I'd say it was Monadic<br>
> except that Tim & Wadler would yell at me.<br>
><br>
> I can't remember if Kernan supported empty lists operators: wouldn't surprise me.<br>
It still permits circumfix definitions of mirrored bracket pairs with<br>
arbitrary parameter and argument lists, including empty and variadic,<br>
which is what's used for defining method circumfix[ *x ] { x } in the<br>
prelude.<br>
-Michael<br>
</blockquote></div>