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
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Assigning result of a fun...
by
simsee
[September 13, 2024, 11:56:54 pm]
Any good tutorials for dg...
by
Mathias
[September 13, 2024, 11:00:55 pm]
Memory leak using TJPEGIm...
by
petevick
[September 13, 2024, 10:27:35 pm]
[SOLVED] How to "Jump To"...
by
RedOctober
[September 13, 2024, 09:52:28 pm]
How to use newer macOS SD...
by
Hansaplast
[September 13, 2024, 09:34:22 pm]
TryStrToFloat
by
BubikolRamios
[September 13, 2024, 08:56:18 pm]
programming with Lazarus
by
srvaldez
[September 13, 2024, 08:33:55 pm]
LED Multicolor Keyboard C...
by
MarkMLl
[September 13, 2024, 08:15:18 pm]
Effect of streaming in a ...
by
Thaddy
[September 13, 2024, 08:07:16 pm]
Browser User Agent & Frie...
by
Aruna
[September 13, 2024, 08:01:00 pm]
LazCAD – First Release!
by
maurog
[September 13, 2024, 07:13:54 pm]
Unexpected Project1 Form ...
by
Atlanta0001
[September 13, 2024, 07:05:07 pm]
Getting error: Undefined ...
by
DiegoF
[September 13, 2024, 05:22:21 pm]
Listview how to custom or...
by
VisualLab
[September 13, 2024, 05:06:37 pm]
Using synapse to send ema...
by
hamacker
[September 13, 2024, 03:50:53 pm]
Unable to Query the ODBC ...
by
Thaddy
[September 13, 2024, 03:43:31 pm]
Searching for a safe alte...
by
marcov
[September 13, 2024, 03:12:42 pm]
MariaDB sold to Investor
by
dbannon
[September 13, 2024, 02:55:32 pm]
Lazarus always uses a 32 ...
by
Martin_fr
[September 13, 2024, 02:37:27 pm]
Class designer/editor
by
Aruna
[September 13, 2024, 02:28:35 pm]
[Solved] Unable install l...
by
JohnnieK
[September 13, 2024, 09:12:35 am]
SnapTRAINER
by
davenardella
[September 13, 2024, 08:28:42 am]
Broken Icon Display on ma...
by
dsiders
[September 13, 2024, 07:31:54 am]
Local Vars often inspect ...
by
SandyG
[September 13, 2024, 05:21:45 am]
TListView.OnChange Event ...
by
msintle
[September 13, 2024, 02:18:23 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: Operator outta (Read 752 times)
domasz
Hero Member
Posts: 526
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: 4478
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.0.4 and Lazarus 1.8.2) or (FPC v3.2.2 and Lazarus v3.2) on Windows 7 SP1 64bit.
domasz
Hero Member
Posts: 526
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: 26
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
Kays
Hero Member
Posts: 600
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: 526
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: 12288
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: 526
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
Jr. Member
Posts: 81
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: 526
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