Do you want the return to return from the function or do something else? On Tue, Oct 21, 2014 at 5:22 PM, Till Ehrengruber <[email protected]> wrote:
> 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]> 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 >>>> >>> >>>
