+ 1

:)

On Mon, Mar 19, 2018 at 2:16 PM, Petr Fischer <petr.fisc...@me.com> wrote:
> That sounds correct. In this context, my "universal ifTrue:" is really 
> terrible idea.
>
> Thanks for clarification! pf
>
>
>> Why would you do such aberration?
>>
>> It goes against the "fail noisily" "Rule of Repair": Developers should
>> design programs that fail in a manner that is easy to localize and
>> diagnose or in other words “fail noisily”. This rule aims to prevent
>> incorrect output from a program from becoming an input and corrupting
>> the output of other code undetected.
>>
>> It is semantically incorrect, if needed, I don't see why, you sould
>> implement it in  your own class. But when I needed to do such "if"
>> handlers, I did it using meaningful selectors like #ifGranted: or
>> #ifSucceeded:, or the well known #ifEmpty:
>>
>> Regards,
>>
>> Esteban A. Maringolo
>>
>>
>> 2018-03-19 9:40 GMT-03:00 Petr Fischer <petr.fisc...@me.com>:
>> >> Infinite recursion ?
>> >>
>> >> You use #ifTrue: in your implementation of Object>>#ifTrue:
>> >>
>> >> Plus, non-booleans cannot meaningfully respond.
>> >>
>> >> How would you define the semantics of
>> >>
>> >> 123 ifTrue: [ ... ]
>> >
>> > 123 is not "true", so, ignore the block.
>> > Do the ifTrue block only if the receiver is instance of True (true). 
>> > Everything else is not "true" :)
>> >
>> > I missed the recursion, yes, but it could be done another way.
>> >
>> >>
>> >> > On 19 Mar 2018, at 10:18, Petr Fischer <petr.fisc...@me.com> wrote:
>> >> >
>> >> > Hello, I have some sort of philosophical question about 
>> >> > ifTrue:/ifFalse: implementation.
>> >> >
>> >> > Now, ifTrue: is defined in the Boolean class (subclassResponsibility) + 
>> >> > in True and False classes, so, we can send this message to the boolean 
>> >> > expressions (instances) only, otherwise DND occurs.
>> >> >
>> >> > But we can also define one universal ifTrue: right in the Object class, 
>> >> > in this style:
>> >> >
>> >> > Object>>ifTrue: ....
>> >> >     (self = true) ifTrue: [ ... ].
>> >> >
>> >> > then, we can send ifTrue: message to ANY object and it will work 
>> >> > correctly without DND exception on non-boolean objects.
>> >> >
>> >> > Is something bad about this idea?
>> >> >
>> >> > Thanks! pf
>> >> >
>> >>
>> >>
>> >
>>
>

Reply via email to