On 02/02/2016 17:35, Marcos Douglas wrote:
On Tue, Feb 2, 2016 at 3:06 PM, Martin <f...@mfriebe.de> wrote:
In this case, I dislike the
    x := if a then b else c;
Why not as below, using 'inline' keyword?

    x := inline if a then b else c;

because it still resembles a statement. (even so, I guess technically (with or without the inline, it actually is an operator, since its part of an expression)

And as pointed out the next would be "case of" or "inline case of".
Again, it makes no difference if the "inline" prefix turns the statement keyword into an operator, or if this change is deducted from the fact that it is in a right hand site expression. The result is one more expression that looks like statements can return values (or at least statements prefixed by "inline").

Now the below might seem totally exaggerated, but if the above applies to "if" and "case" then really why should it end there? It certainly did not end there in C.

Whats next? codeblocks? (anonymous functions are on the way anyway(afaik), so this is not very different)
x := inline begin {any pascal code/list of statement}; result := value; end;
OUCH! (and caps dont even make that stand out enough)

Also there are many who want assignments
X := inline y := 1;
Now that might be looking nice if all you do is set 10 variables to 1.
But
x := inline if inline y := foo() > inline z := bar() then inline m:= 1 else inline m:=2;
*OUCH*!!

-----------
about inlined codeblock (not that I would like it, but)

afaik anonymous functions may come in  a form like
   x := function begin {...} end; // which will also be a closure.
then that would allow
x := function begin {...} end(); // calling in in place, and assign the result to x
which is really not much different to
   x := inline begin {...} end;

-----------
I would have as alternative to the function style prefered the operator without leading if (X:= a ifthen b ifelse c). But that requires new keywords, and will break a lot of code. Basically anyone who has an identifier (variable, function, ...) called "ifthen"


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to