newbie question: Can D do this?
clk
clk at clksoft.com
Tue Dec 20 06:18:16 PST 2011
Thank you for your quick replies. I'm impressed by the helpfulness and
dedication of the D community!
Here's another one. Is there a way to pass arguments to functions by
keyword as in the calls to f and g below?
void f(int a = 0, int b = 1) {}
void g(int a) {}
void main() {
f(b = 1, a = 0); // compile error
g(a = 0); // also compile error
}
On 12/19/2011 03:00 PM, digitalmars-d-learn-request at puremagic.com wrote:
> Send Digitalmars-d-learn mailing list submissions to
> digitalmars-d-learn at puremagic.com
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://lists.puremagic.com/cgi-bin/mailman/listinfo/digitalmars-d-learn
>
> or, via email, send a message with subject or body 'help' to
> digitalmars-d-learn-request at puremagic.com
>
> You can reach the person managing the list at
> digitalmars-d-learn-owner at puremagic.com
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Digitalmars-d-learn digest..."
>
>
> Today's Topics:
>
> 1. Re: newbie question: Can D do this? (Ali ?ehreli)
> 2. Re: newbie question: Can D do this? (Kai Meyer)
> 3. Re: newbie question: Can D do this? (Simen Kj?r?s)
> 4. Re: newbie question: Can D do this? (Ali ?ehreli)
> 5. Re: newbie question: Can D do this? (Jonathan M Davis)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 19 Dec 2011 10:41:29 -0800
> From: Ali ?ehreli<acehreli at yahoo.com>
> To: digitalmars-d-learn at puremagic.com
> Subject: Re: newbie question: Can D do this?
> Message-ID:<jco0gq$1ilt$1 at digitalmars.com>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
> On 12/19/2011 08:17 AM, clk wrote:
>
> > I'm a little bit intimidated by the fact that the topics in the d-learn
> > list look rather advanced to a newbie like me.
>
> We need more newbie topics here! :)
>
> > 1) Does D support something like the javascript 1.8 destructuring
> > assigment (multiple assigment in python):
> >
> > [a, b] = [b, a];
>
> No multiple assignment like that. But useful approarches exist for most
> needs, like the swap that simendsjo has shown.
>
> > 2) D doesn't seem to support the list comprehension syntax available in
> > python and javascript. Is this correct?
> >
> > [f(x) for x in list if condition]
>
> List comprehension is not part of the language.
>
> import std.algorithm;
>
> void f(int x)
> {}
>
> bool condition(int x)
> {
> return true;
> }
>
> void main()
> {
> auto list = [ 0, 1, 2 ];
> map!f(filter!condition(list));
> }
>
> You can define f and condition within the body of main().
>
> It is possible to use function literals as well:
>
> import std.algorithm;
>
> void main()
> {
> auto list = [ 0, 1, 2 ];
> map!((x){
> /* ... this is f(x) ...*/
> })(filter!((x) {
> return true; /* ... condition ... */
> })(list));
> }
>
> > 3) D's slice operator apparently doesn't allow the use of a stride other
> > than unity as is allowed with fortran and matlab. Is there a way to
> > implement this feature so that
> >
> > [1, 2, 3, 4, 5][0..$:2] would refer to [1, 3, 5], etc..., where 2 is the
> > non unit stride. Or is the find function from std.algorithm the only
> > option to achieve the same behavior.
>
> std.range.stride does that:
>
> import std.range;
> // ...
> stride([1, 2, 3, 4, 5], 2)
>
> >
> > I find the 3 features above extremely convenient in every day coding.
> > Thanks,
> > -clk
> >
> >
>
> Ali
>
>
>
> ------------------------------
>
> Message: 2
> Date: Mon, 19 Dec 2011 11:50:33 -0700
> From: Kai Meyer<kai at unixlords.com>
> To: digitalmars-d-learn at puremagic.com
> Subject: Re: newbie question: Can D do this?
> Message-ID:<jco11q$1lle$1 at digitalmars.com>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> On 12/19/2011 09:17 AM, clk wrote:
>> Hello,
>> I'm new to this mailing list. I'm trying to learn D to eventually use it
>> in production code.
>> I'm a little bit intimidated by the fact that the topics in the d-learn
>> list look rather advanced to a newbie like me.
>> I have 3 fairly simple questions:
>>
>> 1) Does D support something like the javascript 1.8 destructuring
>> assigment (multiple assigment in python):
>>
>> [a, b] = [b, a];
> I would love multiple assignment like this, but it's tricky. But your
> usage isn't really multiple assignment as much as it is a swap. What I'd
> love is something like this:
>
> [a, b, c] = [get_a(), get_b(), get_c()];
>
> Or
>
> [a, b, c] = [to!(int)(argv[1]), some_other_value, argv[4]);
>
>
>
>> 2) D doesn't seem to support the list comprehension syntax available in
>> python and javascript. Is this correct?
>>
>> [f(x) for x in list if condition]
> No, D's syntax is very C-ish. I don't expect syntax like this to ever
> show up (though what you are doing is possible with things like
> std.algorithm)
>
>> 3) D's slice operator apparently doesn't allow the use of a stride other
>> than unity as is allowed with fortran and matlab. Is there a way to
>> implement this feature so that
>>
>> [1, 2, 3, 4, 5][0..$:2] would refer to [1, 3, 5], etc..., where 2 is the
>> non unit stride. Or is the find function from std.algorithm the only
>> option to achieve the same behavior.
> Ya, std.range, like Ali said.
>
>> I find the 3 features above extremely convenient in every day coding.
>> Thanks,
>> -clk
>>
>
>
> ------------------------------
>
> Message: 3
> Date: Mon, 19 Dec 2011 20:01:06 +0100
> From: Simen Kj?r?s<simen.kjaras at gmail.com>
> To: digitalmars-d-learn at puremagic.com
> Subject: Re: newbie question: Can D do this?
> Message-ID:<op.v6q234mt0gpyof at biotronic.lan>
> Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes
>
> On Mon, 19 Dec 2011 17:17:43 +0100, clk<clk at clksoft.com> wrote:
>
>> Hello,
>> I'm new to this mailing list. I'm trying to learn D to eventually use
>> it in production code.
>> I'm a little bit intimidated by the fact that the topics in the d-learn
>> list look rather advanced to a newbie like me.
>> I have 3 fairly simple questions:
>>
>> 1) Does D support something like the javascript 1.8 destructuring
>> assigment (multiple assigment in python):
>>
>> [a, b] = [b, a];
>
> This, or something quite like it, was covered on Saturday in the thread
> "Alias/Ref Tuples ?". This works (but is hardly as elegant as Python's
> syntax:
>
> import std.typetuple : TypeTuple;
> import std.typecons : tuple;
>
> TypeTuple!(a, b) = tuple(b,a);
>
>
> ------------------------------
>
> Message: 4
> Date: Mon, 19 Dec 2011 11:07:49 -0800
> From: Ali ?ehreli<acehreli at yahoo.com>
> To: digitalmars-d-learn at puremagic.com
> Subject: Re: newbie question: Can D do this?
> Message-ID:<jco225$1r5m$1 at digitalmars.com>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
> On 12/19/2011 10:39 AM, Jonathan M Davis wrote:
> > it's a range (see
> > http://www.informit.com/articles/printerfriendly.aspx?p=1407357 for a
> general
> > explanation of the concept of ranges)
>
> That's a great article.[1] I hope that this chapter is more
> beginner-friendly:
>
> http://ddili.org/ders/d.en/ranges.html
>
> Ali
>
> [1] Andrei's article has a Turkish translation as well:
>
> http://ddili.org/makale/eleman_erisimi_uzerine.html
>
>
>
> ------------------------------
>
> Message: 5
> Date: Mon, 19 Dec 2011 14:30:39 -0500
> From: "Jonathan M Davis"<jmdavisProg at gmx.com>
> To: "digitalmars.D.learn"<digitalmars-d-learn at puremagic.com>
> Subject: Re: newbie question: Can D do this?
> Message-ID:<20111219193039.5420 at gmx.com>
> Content-Type: text/plain; charset="utf-8"
>
> On Monday, December 19, 2011 11:07:49 Ali ?ehreli wrote:
>> That's a great article.[1] I hope that this chapter is more
>> beginner-friendly:
>>
>> http://ddili.org/ders/d.en/ranges.html
> Cool. One of the things that we're missing on the website is a solid article
> on ranges (I started such an article a while back and really should go back
> and finish it), but having something like this to link to should be quite
> useful. I'll have to give it a read. Thanks!
>
> - Jonathan M Davis
>
>
> ------------------------------
>
> _______________________________________________
> Digitalmars-d-learn mailing list
> Digitalmars-d-learn at puremagic.com
> http://lists.puremagic.com/cgi-bin/mailman/listinfo/digitalmars-d-learn
>
>
> End of Digitalmars-d-learn Digest, Vol 71, Issue 29
> ***************************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20111220/94a5960d/attachment-0001.html>
More information about the Digitalmars-d-learn
mailing list