cool :D

On Tue, Mar 16, 2010 at 3:58 PM, Stéphane Ducasse
<[email protected]> wrote:
> + 1
>
> On Mar 15, 2010, at 11:26 PM, Michael Roberts wrote:
>
>> I would try and reduce the number of branches first. you can use guard
>> conditions to exit early.
>>
>> This is not necessarily exact below, but you hopefully get the idea...
>>
>> (self currentRow == sortedRows last and: [self currentCell isNil])
>>       ifTrue: [^self navigationKey: event]
>>
>> self currentRow ifNil: [^self].
>>
>> self currentCell ifNil:
>>       [^self setCurrentRowToNext]
>>
>> self setCurrentCellToNext.
>>
>> self currentCell ifNil: [^self].
>>
>> self currentCell performKeyFocus: event inCellBounds:
>>       (self pvtGetCellBounds: self currentCell)
>>
>>
>> A different approach entirely is to have an object(s) that represents
>> the nil state for the row and cell. That way you are not checking
>> constantly for it being nil, and perhaps you can dispatch some
>> behaviour to it.
>>
>> cheers,
>> Mike
>>
>> On Mon, Mar 15, 2010 at 9:49 PM, nullPointer <[email protected]> wrote:
>>>
>>> Well, perhaps is a theme worked in another times but... is possible for 
>>> Pharo
>>> have a basic Case or elseIf statement? I know is easy create you own
>>> structure control, but not is more useful have a "standard" for everybody?
>>> I´m tired of write code like that...
>>>
>>>                        (self currentRow == sortedRows last and: [ self
>>> currentCell isNil ]) ifTrue:
>>>                        [
>>>                                self navigationKey: event
>>>                        ]
>>>                        ifFalse:
>>>                        [
>>>                                (self currentRow notNil and: [ self 
>>> currentCell isNil ]) ifTrue:
>>>                                [
>>>                                        self setCurrentRowToNext.
>>>                                ]
>>>                                ifFalse:
>>>                                [
>>>                                        (self currentRow notNil and: [ self 
>>> currentCell notNil ]) ifTrue:
>>>                                        [
>>>                                                self setCurrentCellToNext.
>>>
>>>                                                self currentCell notNil 
>>> ifTrue:
>>>                                                [
>>>                                                        self currentCell 
>>> performKeyFocus: event inCellBounds: (self
>>> pvtGetCellBounds: self currentCell).
>>>                                                ].
>>>                                        ].
>>>                                ].
>>>                        ].
>>>
>>>
>>> Write code with that format is pathetical :(
>>>
>>> Is valid too have a "and" and "or" lazy? Exists a not lazy with #& and #|  ,
>>> but could exists an #&& and #||  . Is more easy...
>>>
>>>      value1 == value2 and:[ <condition> ] and: [<condition>] ......
>>>
>>> or
>>>
>>>     value1 == value2 && <condition> && <condition> ......... ???
>>>
>>> Well, perhaps is a stupid question but I miss a more complete way for write
>>> code. If in Smalltalk is possible do easy that and include it in "core" why
>>> not do it?
>>>
>>> Is a reasonable desire :)
>>>
>>> Regards
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> View this message in context: 
>>> http://n4.nabble.com/Case-statement-and-lazy-comparison-in-Pharo-tp1594080p1594080.html
>>> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to