in reply to Re^2: A "but" operator. in thread A "but" operator.
"A but B" <=> "A and !B". Which, scarily enough, is equivalent to "!(A > B)" (A implies B, or "if A, then B"). Which, if you think and squint, makes a weird kind of sense.
Being right, does not endow the right to be rude; politeness costs nothing. Being unknowing, is not the same as being stupid. Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence. Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.
I shouldn't have to say this, but any code, unless otherwise stated, is untested
Re^4: A "but" operator.
by Plankton (Vicar) on Sep 27, 2004 at 20:30 UTC

I think you are trying to say a "but" operator is equivalent "not and" operator and that !(A>B) is equivalent to "but".
I am assuming that "!" symbolizes the negation operator and ">" symbolized the ifthen ( or implies ) operator.
Yet ...
P  Q  P and Q  !(P and Q) 
T  T  T  F 
T  F  F  T 
F  T  F  T 
F  F  F  T 
So I would say "A and !B"is not equivalent to "!(A > B)" and I wouldn't say "A but B" <=> "A and !B", but I could just be misunderstanding your notation. :)
As far a what a but operator is I would say it should be equivalent to the "Boolean And" operator.
And is not needed in a programming language. The word "but" is used in commonly to emphasis
that an assumption is false. Example ...
If a student where to errorously assume that multiplaction is
the same as addition the student might state ...
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 and 1 * 1 = 2
... which we know to be false. The student's teacher would say ...
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 but 1 * 1 != 2
... to correct the student.
This is the same as
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 and 1 * 1 != 2
T and T and T and T is TRUE
It is not equal to
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 and not (1 * 1 != 2)
T and T and T and F is FALSE
But merely gives emphasis to the fact that the student's assumption is false.
Janitored by davido: removed excess spaces within pre tags that caused horizontal scrolling.
Plankton: 1% Evil, 99% Hot Gas. 
 [reply] 

 [reply] 

Ahh! I see. I don't know why I was thinking you meant nand !(P and Q). I misunderstood your notation I guess.
The student's teacher would say ...
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 but 1 * 1 != 2
... which could be written as ...
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 and not (1 * 1 = 2)
I get it now.
Plankton: 1% Evil, 99% Hot Gas. 
 [reply] 
Re^4: A "but" operator.
by Velaki (Chaplain) on Sep 28, 2004 at 02:37 UTC

Since "A but B" is really a conjunctive inversion, discursively it should be equivalent to "A and not B".
And since "A and not B" is equivalent to "not (if A then B)", or in other words, "not (B if A)",
couldn't this be said thusly, to be perly, "B unless A"?
Thoughts?
v
"Perl. There is no substitute."
 [reply] 

This is where predicate logic doesn't work as well as set theory. "A but B" is actually more akin to "A minus B", where A and B are both sets. Or, in Perl,
my @A = ( ... );
my @B = ( ... );
my %B = map { $_ => !!1 } @B;
# "A but B"
grep { !$B{$_} } @A;
Which is very close to the mixin concept that Perl6 will apply to the term "but".
Being right, does not endow the right to be rude; politeness costs nothing. Being unknowing, is not the same as being stupid. Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence. Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.
I shouldn't have to say this, but any code, unless otherwise stated, is untested
 [reply] [d/l] 

