The message is "at:put:". It's a single message send. I encourage you to try the ProfStef tutorial to understand the basis.
On Oct 16, 2016 01:17, "CodeDmitry" <dimamakh...@gmail.com> wrote: > I am trying to do a JavaScript experiment to make Objects behave like > Smalltalk objects. > > example: > > "reminder: Smalltalk arrays start at 1." > |arr| > a := Array new: 1. > a at: 1 put: 'Hello, World'. > > Here, the Smalltalk array has a message "at: index put: value" which is > defined many layers of prototype chaining down, at Object in category > accessing. > > However there are many messages on the way traversing the prototype chain > that start with "at:", such as(SequenceableCollection) "at: x ifAbsent: y", > "at: x incrementBy: y". > > How does Smalltalk tell which message is which? Does it merge the messages > into a single message such as "at: x put: y" to "atPut(x, y)" at some > point? > > Without knowing this, I have to traverse the whole call chain and check > whether each argument is called in a specific way, which is incredibly > expensive. If there was a single name such as "atPut" I can easily just do > a > dictionary lookup for this name and get it at O(1). > > Does Smalltalk actually store each message? > > > > -- > View this message in context: http://forum.world.st/How-do- > Smalltalk-disambiguate-messages-tp4918946.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > >