Page 1 of 1

[Implemented] NOT (or !) operator

Posted: Wed May 07, 2003 4:11 am
by Amiga5k
So we can do If Not OpenConsole() etc. instead of If OpenConsole() = #FALSE...

I know it's easy enough to do:

Code: Select all

Procedure Not(expression)
   If expression
      ProcedureReturn #FALSE
   Else
      ProcedureReturn #TRUE
   Endif
EndProcedure

If Not(OpenConsole())...
But it would be nice. Or possibly using '!' instead of Not (too C-Like?)

Just a tiny wish. :)

Russell

Re: NOT (or !) operator

Posted: Wed May 07, 2003 8:45 am
by tinman
Amiga5k wrote:Or possibly using '!' instead of Not (too C-Like?)
We already have ! for XOR :)

Posted: Wed May 07, 2003 9:38 am
by Pupil
PureBasic already has the bitwise NOT operator, it's just not the usual character '!' as in many other languages, in PB it's the '~' sign. It's in the manual under the section that says "Variables, Types and operators".

Edit: Sorry that wasn't what you were asking for, why not use this instead of logical NOT:

Code: Select all

if <expression> = 0 ; same as 'if NOT <expression>'

Posted: Wed May 07, 2003 4:37 pm
by geoff
Logical not makes code clearer.

Code: Select all

found=search_file_for_string(file$,a$)
If NOT found
  etc
  etc
EndIf

Posted: Fri May 09, 2003 9:22 pm
by Amiga5k
[quote]
Edit: Sorry that wasn't what you were asking for, why not use this instead of logical NOT:

Code: Select all

if <expression> = 0 ; same as 'if NOT <expression>' 
[\code]
[\quote]
I do already (although I prefer If <expression> = #FALSE), but I got used to 'Not' in other languages and kinda liked it. It's simple enough to write a Not procedure, but just thought I'd throw this idea out there, too.

And Tinman, you're right about the '!' operator :( No big deal. I just use the Not procedure to do it:
[code]
If Not(<expression>)
   ...
Else
   ...
EndIf
[\code]

Russell

Posted: Fri May 30, 2003 10:05 pm
by Revolver
Personally I can't believe that a logical NOT was left out of PureBasic in the first place... What was Fred thinking!

Posted: Sat May 31, 2003 10:05 pm
by Amiga5k
I forgive him. He's got other fish to fry :) I'm sure he will add it as soon as he can. In the mean time, it's easy to get around it. Talk about omissions, all three versions of Blitz are missing Val() :( and Int() works in a completely different way than all other basics' versions of Int(). So I can do without the Not statement for now, really. ;)

btw, I think Fred is supposed to have the new version of PB up June 1st!

Russell

Posted: Tue Jun 10, 2003 3:36 am
by flim
I would like to see logical Not and also "break" and "continue" keyword for loop.