I kind of like that idea, actually.

On Fri, Mar 21, 2014 at 5:10 PM, Matt Bauman <[email protected]> wrote:

> I quickly acclimated to Stefan's && idiom and now happily read and write
> code containing it.  That said, it did throw me for a loop when first
> learning the language.  I'm not too big of a fan of reserving another
> keyword for an optional syntax… but I could perhaps support its inclusion
> if it were *only* for one-line if statements and didn't require a
> terminating `end` (and had no support for else/elseif clauses):
>
> if 4 == 2+2 then go_home()
>
>
> On Friday, March 21, 2014 4:54:53 PM UTC-4, Stefan Karpinski wrote:
>
>> On the other hand, saying "4 == 2 + 2 or go home" is perfectly reasonable
>> ;-)
>>
>>
>> On Thu, Mar 20, 2014 at 6:47 PM, John Myles White 
>> <[email protected]>wrote:
>>
>>> To me, this actually explains why the i == 1 && do_stuff() idiom feels
>>> so unnatural: you'd never mix a declarative statement with an imperative
>>> statement in English using only an "and" or an "or". "4 == 2 + 2 and go
>>> home" is verging on being Doge.
>>>
>>>  -- John
>>>
>>>
>>> On Mar 20, 2014, at 2:46 PM, Stefan Karpinski <[email protected]>
>>> wrote:
>>>
>>> I always just read them like this:
>>>
>>> cond "and" do_something
>>> cond "or" do_something
>>>
>>>
>>> That seems like it reads pretty naturally to me. This is also one of the
>>> reasons I've occasionally brought up the idea of having "and" and "or"
>>> keywords.
>>>
>>>
>>> On Thu, Mar 20, 2014 at 5:27 PM, Leah Hanson <[email protected]> wrote:
>>>
>>>>  I'm not so sure about i == 1 && do_stuff() being readable, but I
>>>> think it's better than do_stuff() if i==1. Every time I see i==1 &&
>>>> do_stuff(), I have to stop and reason about what it's doing, but at least
>>>> it isn't tricky. With && either you can read it easily, or you see that
>>>> something weird is going on; with end of line if's, it's always this
>>>> surprising thing where you need to reconsider the preceding part of the
>>>> line (which makes it much more appealing for the person *writing* the code
>>>> than the one *reading* it.
>>>>
>>>> -- Leah
>>>>
>>>>
>>>> On Thu, Mar 20, 2014 at 4:16 PM, Jacob Quinn <[email protected]>wrote:
>>>>
>>>>> I agree. I've never liked python's do_stuff() if i == 1. It's too
>>>>> disconcerting to parse what's going on and then have to backtrack and 
>>>>> think
>>>>> about the condition that came afterwards. I've found the i == 1 &&
>>>>> do_stuff() has become really natural after only using it a few times.
>>>>>
>>>>> -Jacob
>>>>>
>>>>>
>>>>> On Thu, Mar 20, 2014 at 5:13 PM, Ivar Nesje <[email protected]> wrote:
>>>>>
>>>>>> The suffix `if` and `unless` is the reason I never managed to become
>>>>>> literate in Ruby. Maybe it is just a matter of time and experience, but I
>>>>>> read code lines from left to right, and my mental read buffer is not long
>>>>>> enough to see the `if` that someone hid at the end of the line.
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>

Reply via email to