Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
General
»
Operator outta
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
Forum Rules
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Lazarus broke my project
by
LV
[
Today
at 07:18:19 am]
Some testing the water qu...
by
paweld
[
Today
at 07:07:33 am]
WaveFunction Collapse
by
Boleeman
[
Today
at 04:11:50 am]
Lowercase Drive in LAZ 4....
by
n7800
[
Today
at 12:42:57 am]
Free Vision Build Failing...
by
swissbob
[November 15, 2025, 11:54:34 pm]
Add new unit to a Lazarus...
by
n7800
[November 15, 2025, 11:50:01 pm]
Programmatic filtering in...
by
jamie
[November 15, 2025, 08:05:46 pm]
How to hide IEEE754 limit...
by
srvaldez
[November 15, 2025, 07:42:38 pm]
Get "serial number" of (r...
by
Bart
[November 15, 2025, 07:36:59 pm]
This worries me about our...
by
Curt Carpenter
[November 15, 2025, 06:32:55 pm]
Porting PDF Viewer from D...
by
Boleeman
[November 15, 2025, 06:21:52 pm]
New Mac mini M4 - FPC 3.2...
by
Thaddy
[November 15, 2025, 05:29:31 pm]
Form scaling aspect ratio
by
jamie
[November 15, 2025, 05:01:41 pm]
Demo #3 of my "home grown...
by
TBMan
[November 15, 2025, 03:05:57 pm]
Seems like good timing to...
by
mdlueck
[November 15, 2025, 02:17:23 pm]
Lazarus Bugfix Release 4...
by
jwdietrich
[November 15, 2025, 01:54:34 pm]
synedit
by
Martin_fr
[November 15, 2025, 01:49:12 pm]
[SOLVED] How to update 'F...
by
Hartmut
[November 15, 2025, 01:33:36 pm]
Help with search and repa...
by
avk
[November 15, 2025, 07:09:59 am]
Variable "xyz" doesn't no...
by
Mr.Madguy
[November 15, 2025, 06:22:15 am]
Problem Installing CHM He...
by
Curt Carpenter
[November 15, 2025, 03:03:11 am]
EditorMacroScript did not...
by
jamie
[November 15, 2025, 02:55:41 am]
Mapping Images Like Odome...
by
SandyG
[November 14, 2025, 11:53:01 pm]
Problem with Qt5 on macOS
by
zeljko
[November 14, 2025, 10:39:24 pm]
Incompatible type in MTPr...
by
LemonParty
[November 14, 2025, 06:36:59 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: Operator outta (Read 1212 times)
domasz
Hero Member
Posts: 591
Operator outta
«
on:
August 01, 2024, 09:33:37 am »
So we have operator in. We can use it like:
Code: Pascal
[Select]
[+]
[-]
if
5
in
[
1
,
3
,
5
]
Then we should have outta, like:
Code: Pascal
[Select]
[+]
[-]
if
5
outta
[
1
,
3
,
4
]
Much cleaner than
Code: Pascal
[Select]
[+]
[-]
if
not
(
5
in
[
1
,
3
,
4
]
)
Logged
440bx
Hero Member
Posts: 5820
Re: Operator outta
«
Reply #1 on:
August 01, 2024, 10:05:39 am »
if something like that were to be considered, I'd much prefer something along the lines of:
Code: Pascal
[Select]
[+]
[-]
if
5
notin
[
1
,
3
,
4
]
then
{ whatever }
;
Logged
FPC v3.2.2 and Lazarus v4.0rc3 on Windows 7 SP1 64bit.
domasz
Hero Member
Posts: 591
Re: Operator outta
«
Reply #2 on:
August 01, 2024, 10:17:24 am »
That's even better. We need this feature now! It's impossible to write any program in FP without this feature!!11
Logged
BildatBoffin
New Member
Posts: 40
Re: Operator outta
«
Reply #3 on:
August 01, 2024, 11:39:05 am »
Why not just the not-in combo
Code: Pascal
[Select]
[+]
[-]
if
5
not
in
[
1
,
3
,
4
]
Logged
-
https://gitlab.com/basile.b
-
https://gitlab.com/styx-lang/styx
Kays
Hero Member
Posts: 624
Whasup!?
Re: Operator outta
«
Reply #4 on:
August 01, 2024, 11:46:40 am »
If
Code: Pascal
[Select]
[+]
[-]
if
not
bothers you, you may want to program in Ruby or other languages that have the keyword
Code: Ruby
[Select]
[+]
[-]
unless
There is of course the option to rephrase an expression:
Code: Pascal
[Select]
[+]
[-]
if
[
5
]
*
[
1
,
2
,
3
]
=
[
]
then
Logged
Yours Sincerely
Kai Burghardt
domasz
Hero Member
Posts: 591
Re: Operator outta
«
Reply #5 on:
August 01, 2024, 12:02:45 pm »
"not in" might be harder to introduce than "notin" since "not" already is used for something else.
For me "unless" is kinda weird.
Code: Pascal
[Select]
[+]
[-]
if
[
5
]
*
[
1
,
2
,
3
]
=
[
]
then
That's too mathy
Logged
wp
Hero Member
Posts: 13226
Re: Operator outta
«
Reply #6 on:
August 01, 2024, 01:11:09 pm »
What's wrong with
Code: Pascal
[Select]
[+]
[-]
if
not
(
5
in
[
1
,
2
,
3
]
)
? Having to type two backets? Come on...
Logged
domasz
Hero Member
Posts: 591
Re: Operator outta
«
Reply #7 on:
August 01, 2024, 01:19:11 pm »
Brackets make things harder to read. In this example it's easy:
Code: Pascal
[Select]
[+]
[-]
if
not
(
5
in
[
1
,
2
,
3
]
)
but it can be more complicated:
Code: Pascal
[Select]
[+]
[-]
if
(
(
not
(
5
in
[
1
,
2
,
3
]
)
or
(
6
>
5
)
or
(
7
=
fun
(
8
)
)
)
and
(
1
=
2
)
With operator "notin" and a few others we could simplify a lot or expressions.
Logged
Khrys
Sr. Member
Posts: 348
Re: Operator outta
«
Reply #8 on:
August 01, 2024, 01:23:08 pm »
If you really,
really
want to do this...
Code: Pascal
[Select]
[+]
[-]
{$macro on}
{$define outta := xor}
type
TByteSet
=
set
of
Byte
;
operator
xor
(
A
:
Integer
;
B
:
TByteSet
)
:
Boolean
;
inline
;
begin
Result
:
=
not
(
A
in
B
)
;
end
;
function
Test
(
)
:
Boolean
;
begin
Result
:
=
5
outta
[
1
,
3
,
4
]
;
end
;
Logged
domasz
Hero Member
Posts: 591
Re: Operator outta
«
Reply #9 on:
August 01, 2024, 10:38:17 pm »
Thanks, Khrys. That's very nice!
Logged
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
General
»
Operator outta
TinyPortal
© 2005-2018