Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-20 Thread p...@highoctane.be
Le 20 juin 2014 02:16, David T. Lewis le...@mail.msen.com a écrit :

 On Thu, Jun 19, 2014 at 11:24:33AM -0300, Esteban A. Maringolo wrote:
  Can somebody please tell me the semantic difference between #cull: and
#value: ?
  'Cull' is not a word I ever used in any english based conversation :)

 Hi Esteban,

 I am an American English speaker, and I have never used the word 'cull' in
 conversation or in writing. I recognize it as a real word, but I had to
look
 it up in a dictionary to see what it means.

 Dave


Extensive usage here...

http://stargate.wikia.com/wiki/Culling

You'll see cull: with a new eye now :-p

Phil


Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-20 Thread Yuriy Tymchuk
On 20 Jun 2014, at 22:59, stepharo steph...@free.fr wrote:

 
 On 19/6/14 14:08, Henrik Johansen wrote:
 On 19 Jun 2014, at 1:42 , Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 Hi,
 
 maybe we should implement #cull:cull: in symbol so that it will call 
 #cull:? Because this looks correct, if block has 1 parameter, then 
 #cull:cull: boils down to #value:, but when we have a symbol instead, we 
 have an exception.
 
 I can open an issue and implement that stuff, but I want a feedback from 
 the conceptual point of view.
 
 Uko
 
 #cull: is supposed to be the equivalent to the #value: protocol, where the 
 parameter is optional.
 
 Symbol has no #value:value: message, hence it should have no #cull:cull: 
 either.
 
 You could argue it should implement both, with value:value: polymorphic to 
 the block
 [:a :b | a perform: theSymbol with: b ].
 
 but cull:cull: would then mean equivalence to:
 for #+  [:a :b | a + b]
 for #squared [:a | a self]
 
 And I don’t see how that’d be intuitive/useful enough to warrant inclusion
 
 +1

I’m not telling to implement #value:value: but #cull:cull: which is equivalent 
to #value:

so instead of [ :var | var name ] I can use just #name

 
 
 
 Considering the sole reason cull: on Symbol exists, is to allow select:  
 etc. to be written using cull so the block arg is optional, but still do 
 aCollection collect: #mySymbol, the closest equivalent would be .
 aCollection sort: # / aCollection inject: 0 into: #+
 which, while might be nice, both have no use for cull:cull: in the same 
 manner:
 aCollection inject: 0 into: #squared - [:sub :next | sub squared] ???
  The whole who is the receiver, what’s going on»-factor of cull:cull: on 
 symbol is non-intuitive enough that at least I feel it’s better to write out 
 the block explicitly.
 
 Cheers,
 Henry



[Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Yuriy Tymchuk
Hi,

maybe we should implement #cull:cull: in symbol so that it will call #cull:? 
Because this looks correct, if block has 1 parameter, then #cull:cull: boils 
down to #value:, but when we have a symbol instead, we have an exception.

I can open an issue and implement that stuff, but I want a feedback from the 
conceptual point of view.

Uko



Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Sven Van Caekenberghe
I believe this was already discussed long ago, with a decision not to go 
further that #cull: (or #value:) on Symbol, some even find that too much from a 
design perspective.

I like writing code like

  #(1 2 3) collect: #asString

especially interactively, since it is less verbose.

In what situation did you encounter a need to add #cull:cull: to Symbol ?

On 19 Jun 2014, at 13:42, Yuriy Tymchuk yuriy.tymc...@me.com wrote:

 Hi,
 
 maybe we should implement #cull:cull: in symbol so that it will call #cull:? 
 Because this looks correct, if block has 1 parameter, then #cull:cull: boils 
 down to #value:, but when we have a symbol instead, we have an exception.
 
 I can open an issue and implement that stuff, but I want a feedback from the 
 conceptual point of view.
 
 Uko
 




Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Yuriy Tymchuk
For example in Spec’s ListModel there is a thing called displayBlock:. And I 
have to write `list displayBlock: [ :package | package name ]`, while I think 
that 
`list displayBlock: #name` is clear enough, but the block receives #cull:cull:

Uko

On 19 Jun 2014, at 13:52, Sven Van Caekenberghe s...@stfx.eu wrote:

 I believe this was already discussed long ago, with a decision not to go 
 further that #cull: (or #value:) on Symbol, some even find that too much from 
 a design perspective.
 
 I like writing code like
 
  #(1 2 3) collect: #asString
 
 especially interactively, since it is less verbose.
 
 In what situation did you encounter a need to add #cull:cull: to Symbol ?
 
 On 19 Jun 2014, at 13:42, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 Hi,
 
 maybe we should implement #cull:cull: in symbol so that it will call #cull:? 
 Because this looks correct, if block has 1 parameter, then #cull:cull: boils 
 down to #value:, but when we have a symbol instead, we have an exception.
 
 I can open an issue and implement that stuff, but I want a feedback from the 
 conceptual point of view.
 
 Uko
 
 
 




Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Henrik Johansen

On 19 Jun 2014, at 1:42 , Yuriy Tymchuk yuriy.tymc...@me.com wrote:

 Hi,
 
 maybe we should implement #cull:cull: in symbol so that it will call #cull:? 
 Because this looks correct, if block has 1 parameter, then #cull:cull: boils 
 down to #value:, but when we have a symbol instead, we have an exception.
 
 I can open an issue and implement that stuff, but I want a feedback from the 
 conceptual point of view.
 
 Uko
 

#cull: is supposed to be the equivalent to the #value: protocol, where the 
parameter is optional.

Symbol has no #value:value: message, hence it should have no #cull:cull: either.

You could argue it should implement both, with value:value: polymorphic to the 
block
[:a :b | a perform: theSymbol with: b ].

but cull:cull: would then mean equivalence to:
for #+  [:a :b | a + b]
for #squared [:a | a self]

And I don’t see how that’d be intuitive/useful enough to warrant inclusion

Considering the sole reason cull: on Symbol exists, is to allow select:  etc. 
to be written using cull so the block arg is optional, but still do aCollection 
collect: #mySymbol, the closest equivalent would be .
aCollection sort: # / aCollection inject: 0 into: #+
which, while might be nice, both have no use for cull:cull: in the same manner:
aCollection inject: 0 into: #squared - [:sub :next | sub squared] ???
 
The whole who is the receiver, what’s going on»-factor of cull:cull: on symbol 
is non-intuitive enough that at least I feel it’s better to write out the block 
explicitly.

Cheers,
Henry


signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Yuriy Tymchuk
The thing is that cull:cull: can be used on block with 1 parameter. If you 
consider symbol as a block with one parameter then it will work in the same 
style.

In other words: methods that use value:value: want to ensure that they are 
working with 2 param block. Methods that use cull:cull: don’t care what is 
there, but allow you to customise the result with up to 2 parameters. With 
symbol you can customise it with 1 parameter.

Uko

On 19 Jun 2014, at 14:08, Henrik Johansen henrik.s.johan...@veloxit.no wrote:

 
 On 19 Jun 2014, at 1:42 , Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 Hi,
 
 maybe we should implement #cull:cull: in symbol so that it will call #cull:? 
 Because this looks correct, if block has 1 parameter, then #cull:cull: boils 
 down to #value:, but when we have a symbol instead, we have an exception.
 
 I can open an issue and implement that stuff, but I want a feedback from the 
 conceptual point of view.
 
 Uko
 
 
 #cull: is supposed to be the equivalent to the #value: protocol, where the 
 parameter is optional.
 
 Symbol has no #value:value: message, hence it should have no #cull:cull: 
 either.
 
 You could argue it should implement both, with value:value: polymorphic to 
 the block
 [:a :b | a perform: theSymbol with: b ].
 
 but cull:cull: would then mean equivalence to:
 for #+  [:a :b | a + b]
 for #squared [:a | a self]
 
 And I don’t see how that’d be intuitive/useful enough to warrant inclusion
 
 Considering the sole reason cull: on Symbol exists, is to allow select:  etc. 
 to be written using cull so the block arg is optional, but still do 
 aCollection collect: #mySymbol, the closest equivalent would be .
 aCollection sort: # / aCollection inject: 0 into: #+
 which, while might be nice, both have no use for cull:cull: in the same 
 manner:
 aCollection inject: 0 into: #squared - [:sub :next | sub squared] ???
 
 The whole who is the receiver, what’s going on»-factor of cull:cull: on 
 symbol is non-intuitive enough that at least I feel it’s better to write out 
 the block explicitly.
 
 Cheers,
 Henry




Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Tudor Girba
In other engines where we want scripting to be used, we use a cull: or
value: with a prefix. In the case of Spec, this could be specCull:cull:.
This could be used as an extension of Symbol without spawning religious
wars :).

The funny thing is that in all these engines that do define special value:
like methods, the implementation looks exactly the same. Perhaps this
should tell us that it would be worth having it by default.

Doru


On Thu, Jun 19, 2014 at 2:16 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:

 The thing is that cull:cull: can be used on block with 1 parameter. If you
 consider symbol as a block with one parameter then it will work in the same
 style.

 In other words: methods that use value:value: want to ensure that they are
 working with 2 param block. Methods that use cull:cull: don’t care what is
 there, but allow you to customise the result with up to 2 parameters. With
 symbol you can customise it with 1 parameter.

 Uko

 On 19 Jun 2014, at 14:08, Henrik Johansen henrik.s.johan...@veloxit.no
 wrote:

 
  On 19 Jun 2014, at 1:42 , Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
  Hi,
 
  maybe we should implement #cull:cull: in symbol so that it will call
 #cull:? Because this looks correct, if block has 1 parameter, then
 #cull:cull: boils down to #value:, but when we have a symbol instead, we
 have an exception.
 
  I can open an issue and implement that stuff, but I want a feedback
 from the conceptual point of view.
 
  Uko
 
 
  #cull: is supposed to be the equivalent to the #value: protocol, where
 the parameter is optional.
 
  Symbol has no #value:value: message, hence it should have no #cull:cull:
 either.
 
  You could argue it should implement both, with value:value: polymorphic
 to the block
  [:a :b | a perform: theSymbol with: b ].
 
  but cull:cull: would then mean equivalence to:
  for #+  [:a :b | a + b]
  for #squared [:a | a self]
 
  And I don’t see how that’d be intuitive/useful enough to warrant
 inclusion
 
  Considering the sole reason cull: on Symbol exists, is to allow select:
  etc. to be written using cull so the block arg is optional, but still do
 aCollection collect: #mySymbol, the closest equivalent would be .
  aCollection sort: # / aCollection inject: 0 into: #+
  which, while might be nice, both have no use for cull:cull: in the same
 manner:
  aCollection inject: 0 into: #squared - [:sub :next | sub squared] ???
 
  The whole who is the receiver, what’s going on»-factor of cull:cull: on
 symbol is non-intuitive enough that at least I feel it’s better to write
 out the block explicitly.
 
  Cheers,
  Henry





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Yuriy Tymchuk

On 19 Jun 2014, at 15:47, Tudor Girba tu...@tudorgirba.com wrote:

 In other engines where we want scripting to be used, we use a cull: or value: 
 with a prefix. In the case of Spec, this could be specCull:cull:. This could 
 be used as an extension of Symbol without spawning religious wars :).

Yes, also I can use a block with 1 param. The thing is that as far as I 
understand cull:cull: means:

if possible: “value:value:”
else if possible: “value:”
else “value”

So this can work for block. But maybe cull: has different philosophy 

Uko

 
 The funny thing is that in all these engines that do define special value: 
 like methods, the implementation looks exactly the same. Perhaps this should 
 tell us that it would be worth having it by default.
 
 Doru
 
 
 On Thu, Jun 19, 2014 at 2:16 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 The thing is that cull:cull: can be used on block with 1 parameter. If you 
 consider symbol as a block with one parameter then it will work in the same 
 style.
 
 In other words: methods that use value:value: want to ensure that they are 
 working with 2 param block. Methods that use cull:cull: don’t care what is 
 there, but allow you to customise the result with up to 2 parameters. With 
 symbol you can customise it with 1 parameter.
 
 Uko
 
 On 19 Jun 2014, at 14:08, Henrik Johansen henrik.s.johan...@veloxit.no 
 wrote:
 
 
  On 19 Jun 2014, at 1:42 , Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
  Hi,
 
  maybe we should implement #cull:cull: in symbol so that it will call 
  #cull:? Because this looks correct, if block has 1 parameter, then 
  #cull:cull: boils down to #value:, but when we have a symbol instead, we 
  have an exception.
 
  I can open an issue and implement that stuff, but I want a feedback from 
  the conceptual point of view.
 
  Uko
 
 
  #cull: is supposed to be the equivalent to the #value: protocol, where the 
  parameter is optional.
 
  Symbol has no #value:value: message, hence it should have no #cull:cull: 
  either.
 
  You could argue it should implement both, with value:value: polymorphic to 
  the block
  [:a :b | a perform: theSymbol with: b ].
 
  but cull:cull: would then mean equivalence to:
  for #+  [:a :b | a + b]
  for #squared [:a | a self]
 
  And I don’t see how that’d be intuitive/useful enough to warrant inclusion
 
  Considering the sole reason cull: on Symbol exists, is to allow select:  
  etc. to be written using cull so the block arg is optional, but still do 
  aCollection collect: #mySymbol, the closest equivalent would be .
  aCollection sort: # / aCollection inject: 0 into: #+
  which, while might be nice, both have no use for cull:cull: in the same 
  manner:
  aCollection inject: 0 into: #squared - [:sub :next | sub squared] ???
 
  The whole who is the receiver, what’s going on»-factor of cull:cull: on 
  symbol is non-intuitive enough that at least I feel it’s better to write 
  out the block explicitly.
 
  Cheers,
  Henry
 
 
 
 
 
 -- 
 www.tudorgirba.com
 
 Every thing has its own flow



Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Esteban A. Maringolo
Can somebody please tell me the semantic difference between #cull: and #value: ?
'Cull' is not a word I ever used in any english based conversation :)

Regards,

--
Esteban.

ps: I'm a big fan of having a valuable protocol, implemented by both
Symbol and BlockClosure (and MessageSend), and I miss this behavior in
Pharo.



Esteban A. Maringolo


2014-06-19 11:14 GMT-03:00 Yuriy Tymchuk yuriy.tymc...@me.com:

 On 19 Jun 2014, at 15:47, Tudor Girba tu...@tudorgirba.com wrote:

 In other engines where we want scripting to be used, we use a cull: or
 value: with a prefix. In the case of Spec, this could be specCull:cull:.
 This could be used as an extension of Symbol without spawning religious wars
 :).


 Yes, also I can use a block with 1 param. The thing is that as far as I
 understand cull:cull: means:

 if possible: “value:value:”
 else if possible: “value:”
 else “value”

 So this can work for block. But maybe cull: has different philosophy

 Uko


 The funny thing is that in all these engines that do define special value:
 like methods, the implementation looks exactly the same. Perhaps this should
 tell us that it would be worth having it by default.

 Doru


 On Thu, Jun 19, 2014 at 2:16 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:

 The thing is that cull:cull: can be used on block with 1 parameter. If you
 consider symbol as a block with one parameter then it will work in the same
 style.

 In other words: methods that use value:value: want to ensure that they are
 working with 2 param block. Methods that use cull:cull: don’t care what is
 there, but allow you to customise the result with up to 2 parameters. With
 symbol you can customise it with 1 parameter.

 Uko

 On 19 Jun 2014, at 14:08, Henrik Johansen henrik.s.johan...@veloxit.no
 wrote:

 
  On 19 Jun 2014, at 1:42 , Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
  Hi,
 
  maybe we should implement #cull:cull: in symbol so that it will call
  #cull:? Because this looks correct, if block has 1 parameter, then
  #cull:cull: boils down to #value:, but when we have a symbol instead, we
  have an exception.
 
  I can open an issue and implement that stuff, but I want a feedback
  from the conceptual point of view.
 
  Uko
 
 
  #cull: is supposed to be the equivalent to the #value: protocol, where
  the parameter is optional.
 
  Symbol has no #value:value: message, hence it should have no #cull:cull:
  either.
 
  You could argue it should implement both, with value:value: polymorphic
  to the block
  [:a :b | a perform: theSymbol with: b ].
 
  but cull:cull: would then mean equivalence to:
  for #+  [:a :b | a + b]
  for #squared [:a | a self]
 
  And I don’t see how that’d be intuitive/useful enough to warrant
  inclusion
 
  Considering the sole reason cull: on Symbol exists, is to allow select:
  etc. to be written using cull so the block arg is optional, but still do
  aCollection collect: #mySymbol, the closest equivalent would be .
  aCollection sort: # / aCollection inject: 0 into: #+
  which, while might be nice, both have no use for cull:cull: in the same
  manner:
  aCollection inject: 0 into: #squared - [:sub :next | sub squared] ???
 
  The whole who is the receiver, what’s going on»-factor of cull:cull: on
  symbol is non-intuitive enough that at least I feel it’s better to write 
  out
  the block explicitly.
 
  Cheers,
  Henry





 --
 www.tudorgirba.com

 Every thing has its own flow





Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Esteban Lorenzano
http://www.wordreference.com/es/translation.asp?tranword=cull

yet, it does not looks like having anything to do with executing a block with 
optional parameters :)


On 19 Jun 2014, at 11:24, Esteban A. Maringolo emaring...@gmail.com wrote:

 Can somebody please tell me the semantic difference between #cull: and 
 #value: ?
 'Cull' is not a word I ever used in any english based conversation :)
 
 Regards,
 
 --
 Esteban.
 
 ps: I'm a big fan of having a valuable protocol, implemented by both
 Symbol and BlockClosure (and MessageSend), and I miss this behavior in
 Pharo.
 
 
 
 Esteban A. Maringolo
 
 
 2014-06-19 11:14 GMT-03:00 Yuriy Tymchuk yuriy.tymc...@me.com:
 
 On 19 Jun 2014, at 15:47, Tudor Girba tu...@tudorgirba.com wrote:
 
 In other engines where we want scripting to be used, we use a cull: or
 value: with a prefix. In the case of Spec, this could be specCull:cull:.
 This could be used as an extension of Symbol without spawning religious wars
 :).
 
 
 Yes, also I can use a block with 1 param. The thing is that as far as I
 understand cull:cull: means:
 
 if possible: “value:value:”
 else if possible: “value:”
 else “value”
 
 So this can work for block. But maybe cull: has different philosophy
 
 Uko
 
 
 The funny thing is that in all these engines that do define special value:
 like methods, the implementation looks exactly the same. Perhaps this should
 tell us that it would be worth having it by default.
 
 Doru
 
 
 On Thu, Jun 19, 2014 at 2:16 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 The thing is that cull:cull: can be used on block with 1 parameter. If you
 consider symbol as a block with one parameter then it will work in the same
 style.
 
 In other words: methods that use value:value: want to ensure that they are
 working with 2 param block. Methods that use cull:cull: don’t care what is
 there, but allow you to customise the result with up to 2 parameters. With
 symbol you can customise it with 1 parameter.
 
 Uko
 
 On 19 Jun 2014, at 14:08, Henrik Johansen henrik.s.johan...@veloxit.no
 wrote:
 
 
 On 19 Jun 2014, at 1:42 , Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 Hi,
 
 maybe we should implement #cull:cull: in symbol so that it will call
 #cull:? Because this looks correct, if block has 1 parameter, then
 #cull:cull: boils down to #value:, but when we have a symbol instead, we
 have an exception.
 
 I can open an issue and implement that stuff, but I want a feedback
 from the conceptual point of view.
 
 Uko
 
 
 #cull: is supposed to be the equivalent to the #value: protocol, where
 the parameter is optional.
 
 Symbol has no #value:value: message, hence it should have no #cull:cull:
 either.
 
 You could argue it should implement both, with value:value: polymorphic
 to the block
 [:a :b | a perform: theSymbol with: b ].
 
 but cull:cull: would then mean equivalence to:
 for #+  [:a :b | a + b]
 for #squared [:a | a self]
 
 And I don’t see how that’d be intuitive/useful enough to warrant
 inclusion
 
 Considering the sole reason cull: on Symbol exists, is to allow select:
 etc. to be written using cull so the block arg is optional, but still do
 aCollection collect: #mySymbol, the closest equivalent would be .
 aCollection sort: # / aCollection inject: 0 into: #+
 which, while might be nice, both have no use for cull:cull: in the same
 manner:
 aCollection inject: 0 into: #squared - [:sub :next | sub squared] ???
 
 The whole who is the receiver, what’s going on»-factor of cull:cull: on
 symbol is non-intuitive enough that at least I feel it’s better to write 
 out
 the block explicitly.
 
 Cheers,
 Henry
 
 
 
 
 
 --
 www.tudorgirba.com
 
 Every thing has its own flow
 
 
 




Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread Chris Cunningham
A stretch for rational behind cull:
We are 'culling' the excess variables passed to the block (roughly
equivalent to killing animals when there are too many of them).



On Thu, Jun 19, 2014 at 7:31 AM, Esteban Lorenzano esteba...@gmail.com
wrote:

 http://www.wordreference.com/es/translation.asp?tranword=cull

 yet, it does not looks like having anything to do with executing a block
 with optional parameters :)


 On 19 Jun 2014, at 11:24, Esteban A. Maringolo emaring...@gmail.com
 wrote:

  Can somebody please tell me the semantic difference between #cull: and
 #value: ?
  'Cull' is not a word I ever used in any english based conversation :)
 
  Regards,
 
  --
  Esteban.
 
  ps: I'm a big fan of having a valuable protocol, implemented by both
  Symbol and BlockClosure (and MessageSend), and I miss this behavior in
  Pharo.
 
 
 
  Esteban A. Maringolo
 
 
  2014-06-19 11:14 GMT-03:00 Yuriy Tymchuk yuriy.tymc...@me.com:
 
  On 19 Jun 2014, at 15:47, Tudor Girba tu...@tudorgirba.com wrote:
 
  In other engines where we want scripting to be used, we use a cull: or
  value: with a prefix. In the case of Spec, this could be specCull:cull:.
  This could be used as an extension of Symbol without spawning religious
 wars
  :).
 
 
  Yes, also I can use a block with 1 param. The thing is that as far as I
  understand cull:cull: means:
 
  if possible: “value:value:”
  else if possible: “value:”
  else “value”
 
  So this can work for block. But maybe cull: has different philosophy
 
  Uko
 
 
  The funny thing is that in all these engines that do define special
 value:
  like methods, the implementation looks exactly the same. Perhaps this
 should
  tell us that it would be worth having it by default.
 
  Doru
 
 
  On Thu, Jun 19, 2014 at 2:16 PM, Yuriy Tymchuk yuriy.tymc...@me.com
 wrote:
 
  The thing is that cull:cull: can be used on block with 1 parameter. If
 you
  consider symbol as a block with one parameter then it will work in the
 same
  style.
 
  In other words: methods that use value:value: want to ensure that they
 are
  working with 2 param block. Methods that use cull:cull: don’t care
 what is
  there, but allow you to customise the result with up to 2 parameters.
 With
  symbol you can customise it with 1 parameter.
 
  Uko
 
  On 19 Jun 2014, at 14:08, Henrik Johansen 
 henrik.s.johan...@veloxit.no
  wrote:
 
 
  On 19 Jun 2014, at 1:42 , Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
  Hi,
 
  maybe we should implement #cull:cull: in symbol so that it will call
  #cull:? Because this looks correct, if block has 1 parameter, then
  #cull:cull: boils down to #value:, but when we have a symbol
 instead, we
  have an exception.
 
  I can open an issue and implement that stuff, but I want a feedback
  from the conceptual point of view.
 
  Uko
 
 
  #cull: is supposed to be the equivalent to the #value: protocol, where
  the parameter is optional.
 
  Symbol has no #value:value: message, hence it should have no
 #cull:cull:
  either.
 
  You could argue it should implement both, with value:value:
 polymorphic
  to the block
  [:a :b | a perform: theSymbol with: b ].
 
  but cull:cull: would then mean equivalence to:
  for #+  [:a :b | a + b]
  for #squared [:a | a self]
 
  And I don’t see how that’d be intuitive/useful enough to warrant
  inclusion
 
  Considering the sole reason cull: on Symbol exists, is to allow
 select:
  etc. to be written using cull so the block arg is optional, but still
 do
  aCollection collect: #mySymbol, the closest equivalent would be .
  aCollection sort: # / aCollection inject: 0 into: #+
  which, while might be nice, both have no use for cull:cull: in the
 same
  manner:
  aCollection inject: 0 into: #squared - [:sub :next | sub squared] ???
 
  The whole who is the receiver, what’s going on»-factor of cull:cull:
 on
  symbol is non-intuitive enough that at least I feel it’s better to
 write out
  the block explicitly.
 
  Cheers,
  Henry
 
 
 
 
 
  --
  www.tudorgirba.com
 
  Every thing has its own flow
 
 
 





Re: [Pharo-dev] Implementing cull:cull: in symbol

2014-06-19 Thread David T. Lewis
On Thu, Jun 19, 2014 at 11:24:33AM -0300, Esteban A. Maringolo wrote:
 Can somebody please tell me the semantic difference between #cull: and 
 #value: ?
 'Cull' is not a word I ever used in any english based conversation :)

Hi Esteban,

I am an American English speaker, and I have never used the word 'cull' in
conversation or in writing. I recognize it as a real word, but I had to look
it up in a dictionary to see what it means.

Dave