Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Re: Re: Re: Anyone use "xor" in conditionals?

by Excalibor (Monk)
on Jul 14, 2003 at 17:08 UTC ( #274052=note: print w/replies, xml ) Need Help??


in reply to Re: Re: Re: Anyone use "xor" in conditionals?
in thread Anyone use "xor" in conditionals?

I am sure the Perl internals don't optimize a lot of things, specially in examples like Abigail showed us how to reduce the number of % operations by a careful use of user shortcuts (instead of depending in Perls shortcut for logical operators)

Well, actually, if I recall well, that's exactly the truth table for XOR:

A B XOR 0 0 0 1 0 1 0 1 1 1 1 0

Ie. Either A is true and B is false, or B is true and it's A which is false. This form has the advantage over the other one than in the first part is true (ie. A and not B) there's no need to compute the second one (2 calculations, 1 per proposition). The first proposed form, which is a description of 'exclusive or' (ie. either A or B but not both at once) forces the evaluation of both parts (ie. Once proposition A and again A and proposition B to test the second one, which makes it 3. In the case it's neither A or B it shortcircuits sooner, that's right, and if A is false, then propositions A and B must be tested twice in both cases: it's a matter of taste, I guess).

And obviously I agree with you that XOR is pretty much more specialized than, say AND or PLUS...

OTOH, I'd love for Perl to implement a fast NAND (which by itself creates a complete Boolean algebra). BTW, nand doesn't make expressions easier to read, but much faster as it would shorcircuit much sooner in most cases...

Best regards,

--
our $Perl6 is Fantastic;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://274052]
help
Chatterbox?
[Corion]: ambrus: AnyEvent(::HTTP) doesn't integrate well with Prima, that's my main problem
[Corion]: There is a weirdo shim because there is a POE integration for Prima, and if you use that, you can use the POE adapter of AnyEvent. What I'd want is something transport agnostic that parses HTTP or produces HTTP output, so that the communication with ...
[Corion]: ... the socket is done by my code. Ideally that module would not be based on callbacks ;)
[Corion]: Basically, something that decouples the HTTP parsing (+ determining whether to redirect, etc) from the IO
[Corion]: All clients I'm aware of don't do that but issue all IO themselves

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (12)
As of 2016-12-07 15:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (130 votes). Check out past polls.