what jacob already suggested as a working solution

captures = ismatch(regex,str) ? match(regex, str).captures : return

i can live with that but i would like to express this without the ismatch 
but still in a single line

Am Dienstag, 21. Oktober 2014 21:41:35 UTC+2 schrieb Stefan Karpinski:
>
> What do you want your original example to do?
>
> On Oct 21, 2014, at 3:39 PM, Till Ehrengruber <[email protected] 
> <javascript:>> wrote:
>
> ah i see. I'm a bit confused about conditionals since
>
> false || nothing
>
> for example works alright but
>
> nothing || false
>
> does not. Since the last one doesn't work like I expected my question is 
> pretty senseless ^^ But still i like the used syntax as this doesn't need 
> another function (like the `ismatch`) which can be pretty nasty to 
> implement when the computation is havy and you want to cache the result. Is 
> there any specific reason that conditionals aren't "symmetric"?
>
> Can't see the benefit of the nullable type in this case can you tell?
>
> Am Dienstag, 21. Oktober 2014 14:39:12 UTC+2 schrieb Jacob Quinn:
>>
>> Not sure what you’re asking here: do you have a case where you can’t use 
>> a return within an expression? One thing to note with your example above is 
>> that only boolean values can be used in conditionals (i.e. if-statements, 
>> && and || operators, etc.), match returns the match contents if there 
>> was a match, and the nothing value otherwise. So to make your case work, 
>> you’d need something like:
>>
>> captures = ismatch(regex,str) ? match(regex, str).captures : return
>>
>> In Julia 0.4 dev branch, a Nullable type was recently merged and it’s 
>> been discussed using a Nullable as the return type of regex operations 
>> which would make it slightly easier to check for non-matches.
>>
>> -Jacob
>> ​
>>
>> On Tue, Oct 21, 2014 at 3:52 AM, Till Ehrengruber <[email protected]> 
>> wrote:
>>
>>> wouldn't it be nice to be able to use the return statement deep inside 
>>> your expression such that something like
>>>
>>> captures = (match(regex, str) || return).captures
>>>
>>> in this specific case i encountered a simple HttpRouter which just skips 
>>> the current handler and i don't really need the other results of the match 
>>> expression
>>>
>>> regards till
>>>
>>
>>

Reply via email to