[fpc-pascal] Bls: named parameter
Mr Bee
pak.lebah at yahoo.com
Wed May 31 06:00:57 CEST 2017
Hi, Sven…
This is what I'm thinking…
// function declarationfunction f(i: integer = 0; s: string = ''; d: double);begin // fill code hereend;// method callingf(s := 'text', 0.1); // supply the s and d paramf(0.2); // only supply the required d param// supply all the params without proper order is fine,// as long as the parameter name is givenf(d := 0.3, i := 3, s := 'text')// supply param with similar variable name is fine,// because the compiler knows what each meanss := 'another text';d := 0.4;m(s := s, d := d);
Well, it's all inspired from Swift, but I think it suits Pascal as well.
As you said the code is already there in FPC compiler, is it possible to support such syntax in next release? At least some of them. Can we have this named parameter feature in a particular switch mode, say {$MODESWITCH NAMEDPARAMETERS} or something, so it doesn't bother anyone who don't want this feature.
Thank you.
Regards,
–Mr Bee
Pada Sabtu, 27 Mei 2017 21:18, Sven Barth via fpc-pascal <fpc-pascal at lists.freepascal.org> menulis:
2017-05-27 16:12 GMT+02:00 Michael Van Canneyt <michael at freepascal.org>:
>
>
> On Sat, 27 May 2017, Sven Barth via fpc-pascal wrote:
>
>> 2017-05-27 9:54 GMT+02:00 Michael Van Canneyt <michael at freepascal.org>:
>>>
>>>
>>>
>>> On Sat, 27 May 2017, Mr Bee via fpc-pascal wrote:
>>>
>>>> Hi,
>>>>
>>>> As Pascal mostly well known as a safe, easy to read, and elegant
>>>> language,
>>>> don't you think Pascal needs named parameter? I mean for ALL kind of
>>>> parameters, not just for Variants. When you have a function with many
>>>> parameters having default values, you know that named parameter is
>>>> desirable. For example:
>>>>
>>>> function f(p1: string = ''; p2: integer = 0; p3: boolean = false);
>>>>
>>>> But you only need to supply the third parameter, you still must supply
>>>> the
>>>> first and second ones with appropriate default values, like this:
>>>>
>>>> f('', 0, true);
>>>>
>>>> while with named parameter, you can do this:
>>>>
>>>> f(p3 := true);
>>>>
>>>> I believe it would raise Pascal's code readability. I know it has been
>>>> discussed before. I know somehow the parser had been able to read such
>>>> syntax. So, why don't we have the option to enable it for people who
>>>> want
>>>> it? Kinda a syntax switch mode.
>>>>
>>>> What do you think? :)
>>>
>>>
>>>
>>>
>>> Opinions on what constitutes readable code clearly differ :)
>>>
>>> But as far as I know, the parser is not able to read this syntax ?
>>
>>
>> The parser supports it for dispatch calls on variants (both methods
>> and properties). You even wrote that in your own article about Word
>> automation: https://www.freepascal.org/~michael/articles/word/word.pdf
>> ;)
>
>
> Yes, in Delphi. But I didn't know FPC also supports it ?
Yes, it does. I didn't find a testcase for it right away, but the
compiler definitely contains code for this.
Regards,
Sven
_______________________________________________
fpc-pascal maillist - fpc-pascal at lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20170531/52800458/attachment.html>
More information about the fpc-pascal
mailing list