How about: #mapTo:

Graham

Giovanni Corriga
28 March 2020 at 15:35
How about #consume: ?



_______________________________________________
Esug-list mailing list
Esug-list@lists.esug.org
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
Norbert Hartl
28 March 2020 at 15:19
I think the name destructDo: comes from destructuring assignment.��

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

Norbert




_______________________________________________
Esug-list mailing list
Esug-list@lists.esug.org
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
Mark Plas
28 March 2020 at 15:15

Hello Christian,

��

" I don���t really like the name,"

��

Maybe you could call it #tupleDo:?

��

������������������������������ #(1 2 3) tupleDo: [:a :b :c | ���]

��

Mark

��

��

Mark Plas

Software Engineer
T +32 2 467 34 30

mark.plas@mediagenix.tv

��

��

Nieuwe Gentsesteenweg 21/1

1702 Groot-Bijgaarden - Belgium

����www.mediagenix.tv

Directions to MEDIAGENIX

��

This e-mail and any files attached to it are confidential and intended only for the use of the individuals or entity to whom they are addressed. If you have received this e-mail in error, please notify the sender immediately.

From: Esug-list <esug-list-bounces@lists.esug.org> On Behalf Of Christian Haider
Sent: zaterdag 28 maart 2020 13:43
To: vwnc@cs.uiuc.edu; esug-list@lists.esug.org; amber-lang@googlegroups.com
Subject: [Esug-list] destructDo:

��

Hi,

��

I am using a nice little method #destructDo: for a while now and it feels good.

In VisualWorks:

SequenceableCollection>>destructDo: aBlock

������������������������������ ������������������������������ "Evaluate aBlock with the receiver's elements as parameters.

������������������������������ ������������������������������ aBlock takes its arguments from the receiver.

������������������������������ ������������������������������ 'ok'

������������������������������ ������������������������������ #(1 2 3) destructDo: [:a :b :c | a + b + c]

������������������������������ ������������������������������ #(1 2 3) destructDo: [:a :b | a + b]

������������������������������ ������������������������������ #(1 2 3) destructDo: [:a | a]

������������������������������ ������������������������������ #(1 2 3) destructDo: [42]

������������������������������ ������������������������������ 'not ok'

������������������������������ ������������������������������ #(1 2 3) destructDo: [:a :b :c :d | a + b + c + d]

������������������������������ ������������������������������ "

������������������������������ ������������������������������ ^aBlock cullWithArguments: self asArray

��

In Amber:

SequenceableCollection>>destructDo: aBlock

������������������������������ ������������������������������ ^aBlock valueWithPossibleArguments: self

��

In Pharo and other dialects, I don���t know, but should be as easy.

��

For example you can do

������������������������������ (('2020-03-28' tokensBasedOn: $-) collect: #asNumber) destructDo: [:year :month :day |

������������������������������������������������������������ Date newDay: day monthNumber: month year: year]

��

I like that the block is not the receiver (like with #valueWithArguments or #cullWithArguments), but the last argument.

��

Now the questions:

  • I am sure that others came up with this. Anybody knows?
  • What are you using for this pattern?
  • I don���t really like the name, but haven���t found anything better yet. Maybe #destructedDo: or just #destructed: or: #withPartsDo:��� maybe something shorter? Ideas?
  • What are you thinking about this?

��

Happy hacking,

������������������������������ Christian

��



_______________________________________________
Esug-list mailing list
Esug-list@lists.esug.org
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
Christian Haider
28 March 2020 at 14:42

Hi,

��

I am using a nice little method #destructDo: for a while now and it feels good.

In VisualWorks:

SequenceableCollection>>destructDo: aBlock

������������������������������ ������������������������������ "Evaluate aBlock with the receiver's elements as parameters.

������������������������������ ������������������������������ aBlock takes its arguments from the receiver.

������������������������������ ������������������������������ 'ok'

������������������������������ ������������������������������ #(1 2 3) destructDo: [:a :b :c | a + b + c]

������������������������������ ������������������������������ #(1 2 3) destructDo: [:a :b | a + b]

������������������������������ ������������������������������ #(1 2 3) destructDo: [:a | a]

������������������������������ ������������������������������ #(1 2 3) destructDo: [42]

������������������������������ ������������������������������ 'not ok'

������������������������������ ������������������������������ #(1 2 3) destructDo: [:a :b :c :d | a + b + c + d]

������������������������������ ������������������������������ "

������������������������������ ������������������������������ ^aBlock cullWithArguments: self asArray

��

In Amber:

SequenceableCollection>>destructDo: aBlock

������������������������������ ������������������������������ ^aBlock valueWithPossibleArguments: self

��

In Pharo and other dialects, I don���t know, but should be as easy.

��

For example you can do

������������������������������ (('2020-03-28' tokensBasedOn: $-) collect: #asNumber) destructDo: [:year :month :day |

������������������������������������������������������������ Date newDay: day monthNumber: month year: year]

��

I like that the block is not the receiver (like with #valueWithArguments or #cullWithArguments), but the last argument.

��

Now the questions:

  • I am sure that others came up with this. Anybody knows?
  • What are you using for this pattern?
  • I don���t really like the name, but haven���t found anything better yet. Maybe #destructedDo: or just #destructed: or: #withPartsDo:��� maybe something shorter? Ideas?
  • What are you thinking about this?

��

Happy hacking,

������������������������������ Christian

��



_______________________________________________
Esug-list mailing list
Esug-list@lists.esug.org
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org