Higher Order Message

A higher order message (HOM) in a computer programming language is a form of higher-order programming that allows messages that have other messages as arguments. The concept was introduced at MacHack 2003[1][2] by Marcel Weiher and presented in a more complete form in 2005 by Marcel Weiher and Stéphane Ducasse.[3] Loops can be written without naming the collections looped over, higher order messages can be viewed as a form of point-free or tacit programming. wikipedia

Higher Order Messaging (HOM) by Marcel Weiher www.metaobject.com pdf

In ordinary Smalltalk code, without using HOM, obtaining a collection of the employees that have a salary of 1000 would be achieved with the following code:

salaried := employees select: [ :each | each hasSalary: 1000 ]

However, using HOM, it can be expressed as follows:

salaried := employees select hasSalary: 1000.

Here, select is a higher order message, and hasSalary: is understood to be called on the select message itself, rather than on its result. The Smalltalk language was not modified to implement this feature. Instead, select returns a message that reifies the select send, which then interprets the hasSalary: message.

~

System Overview - Croquet Consortium. pdf

> Another example is the use of Future Message sends in the Croquet Project:[4] wikipedia

DOT FROM lambda-browsing