That's awesome, thank you.
> On Oct 6, 2016, at 17:54, Jeffrey Sarnoff <[email protected]> wrote: > > Peter Norvig's book+site is a very good learning tool. > > by the way: if you are using OSX or Linux and have your terminal using a font > with decent unicode coverage, > `\Rightarrow` followed by TAB turns into `⇒`, which is the generally accepted > symbol for material implication. > > ⇒(p::Bool, q::Bool) = ifelse(p, q, true) > > true ⇒ true, false ⇒ true, false ⇒ false > # (true, true, true) > > true ⇒ false > # false > > > > > > >> On Thursday, October 6, 2016 at 4:34:11 PM UTC-4, Kevin Liu wrote: >> Thanks for the distinction, Jeffrey. >> >> Also, look what I found https://github.com/aimacode. Julia is empty :-). Can >> we hire some Martians to fill it up as we have ran out of Julians on Earth? >> I'm happy I found this though. >> >>> On Thursday, October 6, 2016 at 5:26:43 PM UTC-3, Jeffrey Sarnoff wrote: >>> you are welcome to use >>> implies(p::Bool, q::Bool) = !p | q >>> { !p, ~p likely compile to the same instructions -- they do for me; you >>> might prefer to use of !p here as that means 'logical_not(p)' where ~p >>> means 'flip_the_bits_of(p)' } >>> >>> I find that this form is also 40% slower than the ifelse form. >>> >>> >>> >>>> On Thursday, October 6, 2016 at 4:11:55 PM UTC-4, Kevin Liu wrote: >>>> Is this why I couldn't find implication in Julia? >>>> >>>>> Maybe it was considered redundant because (1) it is less primitive than >>>>> "^", "v", "~", (2) it saves very little typing since "A => B" is >>>>> equivalent to "~A v B". – Giorgio Jan 18 '13 at 14:50 >>>> >>>> Wikipedia also says the implication table is identical to that of ~p | q. >>>> So instead just the below? >>>> >>>> julia> ~p | q >>>> >>>> false >>>> >>>> >>>> I'll take that. >>>> >>>>> On Thursday, October 6, 2016 at 4:08:00 PM UTC-3, Jeffrey Sarnoff wrote: >>>>> (the version using ifelse benchmarks faster on my system) >>>>> >>>>>> On Thursday, October 6, 2016 at 3:05:50 PM UTC-4, Jeffrey Sarnoff wrote: >>>>>> here are two ways >>>>>> >>>>>> implies(p::Bool, q::Bool) = !(p & !q) >>>>>> >>>>>> implies(p::Bool, q::Bool) = ifelse(p, q, true) >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> On Thursday, October 6, 2016 at 12:10:51 PM UTC-4, Kevin Liu wrote: >>>>>>> How is an implication represented in Julia? >>>>>>> >>>>>>> https://en.wikipedia.org/wiki/Material_conditional#Definitions_of_the_material_conditional
