
Hello Martin, You are right, but I disagree :). It started by using #valueWithArguments: more often. I find it very bulky, hard to format nicely and difficult to read. This is because the block is the receiver. As last argument, the world looks brighter, because at the end the block formats better. Compare: ^aList asArgumentsIn: [:a :b :c | | x y | x := a send: b with: c. y := ‘multiline block’. x printString, y] with: ^[:a :b :c | | x y | x := a send: b with: c. y := ‘multiline block’. x printString, y ] valueWithArguments: aList I see the second pattern used in two subsystems in VW, one also uses #cull… Maybe I find it more difficult to read the second pattern, because the argument list is very far away from the list it associates with. I think that I will settle with #asArgumentsIn: and see how it reads in real life. As a shortcut, I can imagine an operator… (too bad that VW doesn’t support Unicode for operators…) Thank you! Von: Esug-list <esug-list-bounces@lists.esug.org> Im Auftrag von Martin McClure Gesendet: Sonntag, 29. März 2020 17:50 An: Bruce Badger <bwbadger@gmail.com>; Tim Mackinnon <tim@testit.works> Cc: esug-list@lists.esug.org Members <esug-list@lists.esug.org> Betreff: Re: [Esug-list] destructDo: After thinking about this message some more, it seemed to me that it was easier to come up with a good intention-revealing name if the block were the receiver and the array were the argument. It would be some kind of #valueWithArguments: selector. So I looked to see whether there was already such a thing, and sure enough, in Pharo there is #valueWithPossibleArgs:. #valueWithPossibleArgs: will accept arrays (and I hope any SequenceableCollection) of any size -- trimming the end off if too large, padding with nils if too short. On the principle of "if it's easy to come up with a good name, the design is probably pretty good" could this possibly be a better solution? Regards, -Martin On 3/29/20 7:50 AM, Bruce Badger wrote: We write code once, but read it many times. Given the relatively few times I would be using this (rather nice) thing, I'd be happy to type the full: asArgumentsIn: Christian, congratulations on coming up with something to get us all thinking and talking. Good timing too :-/ Very best wishes, Bruce On Sun, 29 Mar 2020 at 15:24, Tim Mackinnon <mailto:tim@testit.works> <tim@testit.works> wrote: Agree with intention revealing - #argumentsIn: would contract it a bit more (not sure the as strictly needed as we aren’t returning a result). And #argsIn: might be a bit too concise. Like this proposal though. Tim On Sun, 29 Mar 2020, at 2:28 PM, Helge Nowak via Esug-list wrote: intention revealing trumps brevity Am Sonntag, 29. März 2020, 00:58:49 MEZ hat Christian Haider <christian.haider@smalltalked-visuals.com <mailto:christian.haider@smalltalked-visuals.com> > Folgendes geschrieben: Not bad! Captures the semantics nicely. Just a bit long Von: Esug-list <esug-list-bounces@lists.esug.org <mailto:esug-list-bounces@lists.esug.org> > Im Auftrag von Bert Freudenberg Gesendet: Sonntag, 29. März 2020 00:12 An: esug-list@lists.esug.org <mailto:esug-list@lists.esug.org> Betreff: Re: [Esug-list] destructDo: On Sat, Mar 28, 2020 at 11:27 AM Pape, Tobias <Tobias.Pape@hpi.de <mailto:Tobias.Pape@hpi.de> > wrote: What about ^stringsOfLine asComponentsIn: [:ignore :string2 :string3 :string4 | self produktbereich: string2 profitcenter: string3 bezeichnung: string4] ? Best regards -Tobias Agreed, "...In:" is better than "...Do" because the latter implies iteration in Smalltalk. (never mind ifNotNilDo: which broke the convention) And since block arguments are called "arguments" how about aCollection asArgumentsIn: [:arg1 :arg2 :arg3 | ... ] - Bert - PS: Happy Covid Bike Shedding ;) _______________________________________________ Esug-list mailing list Esug-list@lists.esug.org <mailto:Esug-list@lists.esug.org> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org _______________________________________________ Esug-list mailing list Esug-list@lists.esug.org <mailto:Esug-list@lists.esug.org> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org _______________________________________________ Esug-list mailing list Esug-list@lists.esug.org <mailto:Esug-list@lists.esug.org> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org _______________________________________________ Esug-list mailing list Esug-list@lists.esug.org <mailto:Esug-list@lists.esug.org> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org