Excellent write up, Stephane!

I will add that over the years, there have been many times (countless!) when 
developing/debugging involved a complex block and that turned out to be 
significant nuisance.

I can elaborate on the details, but once a block gets passed around, revising 
it on the fly breaks debug and continue.

Having a block comprise a single message send allows one to revise that method 
as and when needed.

 

 

From: vwnc-requ...@lists.cs.illinois.edu <vwnc-requ...@lists.cs.illinois.edu> 
On Behalf Of stephane.duca...@free.fr
Sent: April 10, 2023 07:03
To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
Cc: v...@lists.cs.illinois.edu
Subject: Re: [vwnc] [Pharo-users] Block evaluation with n+1 arguments

 

BTW to me when a block needs too many arguments it feels like that an object 
has to be born :)

With an object I can just sent or not a given extra argument. 

 

Now I do not know enough your specific context but what I learned is that 
complex blocks are difficult to follow, manipulate…

so I keep block as simple as possible and else I create little objects.

 

 

This is a little lectures from a super cool forthcoming mooc

 

                
https://rmod-files.lille.inria.fr/DesignCoffeeClub/ForLearningLab/7-Lang-04-BlocksVsObjects.pdf
 
<https://urldefense.com/v3/__https:/rmod-files.lille.inria.fr/DesignCoffeeClub/ForLearningLab/7-Lang-04-BlocksVsObjects.pdf__;!!DZ3fjg!7bRnSLpPY1OiW_EoNtvSDBVMfYN5owvLQjTs_FdNbynPLMw7hmdZCNifkawlO9Hz-NbVkGnnh37u3XIaEJEAHjFBHHppJxSeBgY$>
 

 

 





On 6 Apr 2023, at 15:28, Steffen Märcker <merk...@web.de 
<mailto:merk...@web.de> > wrote:

 

Hi!

I want to evaluate a block an argument 'arg1' and additional n arguments
given in an array 'args'. The following code does the trick:

  block valueWithArguments: (Array with: arg1) , args.

Is there a way to do this without the overhead of creating a new Array?
(How) Can I add additional #value:value:[...] methods to BlockClosure that
evaluate the block with n arguments directly without falling back to
#valueWithArguments: ? If yes, what's the maximum?

Cheers!
Steffen

 

Reply via email to