[squeak-dev] [Discussion] Creating message sends via anObject >>> #selector ?

Marcel Taeumel marcel.taeumel at hpi.de
Thu Jun 13 13:57:18 UTC 2019


Hi Francisco,

thanks for sharing. :-) Yes, I am familiar with this work. It is really interesting to see such ideas tackling the line between being language extensions and libraries. Such HOM constructs change the appearance of traditional Smalltalk code. Yet, I got used to passing blocks (and closures) around --- which wasn't possible in Smalltalk-76 ... if I recall correctly. One could still use instances of MessageSend to manage callbacks.

Best,
Marcel
Am 13.06.2019 15:41:59 schrieb Francisco Garau <francisco.garau at gmail.com>:
Have you looked at the Higher Order Messaging from Marcel Weiher?

http://www.metaobject.com/papers/Higher_Order_Messaging_OOPSLA_2005.pdf [http://www.metaobject.com/papers/Higher_Order_Messaging_OOPSLA_2005.pdf]



On 12 Jun 2019, at 14:31, Marcel Taeumel <marcel.taeumel at hpi.de [mailto:marcel.taeumel at hpi.de]> wrote:


Hi, there.

One of our students was curious about whether the following expression could be somehow improved:

someObjects collect: [:each | self convert: each].

I suppose that the main goal was to remove the brackets. Similar to the existing symbol shortcut:

someObjects collect: #message.

Looking at all implementors of #value:, #cull: and alike, I suppose that a more convenient creation of a MessageSend could tackle this case directly:

someObjects collect: self >>> #convert:.

This feels strange. :-) Very strange. But maybe it's just me. I don't see the traditional [:each | ...] version as neither difficult to read nor write.

What do you think about adding the #>>> message to MessageSend for more compact instantiation? Do you see other scenarios of interest? Would it be just superfluous? Producing less readable code?

Best,
Marcel

P.S.: #>>> would be close to #>>, which is implemented on Behavior to access method objects.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190613/399dcb1c/attachment.html>


More information about the Squeak-dev mailing list