Fact checking for my talk
ZombineDev via Digitalmars-d
digitalmars-d at puremagic.com
Tue Aug 16 08:51:35 PDT 2016
On Monday, 15 August 2016 at 14:40:14 UTC, Chris Wright wrote:
> On Mon, 15 Aug 2016 06:43:11 +0000, ZombineDev wrote:
>> Well, I guess it would hard for me to convince you if you
>> don't know what Design by Introspection means.
>
> Some years ago I was on #d on freenode and someone made a
> reference to high-order functions. I hadn't encountered the
> term, so I asked about it. The person answered that if I didn't
> know what it meant, I must not use high-order functions.
>
> In point of fact I was making moderate use of high-order
> functions at that time, but I hadn't heard that term for it.
> There is a difference between knowing how to do a thing and
> knowing a specific term for that thing.
Sorry, I didn't mean my post to sound that way. From my
experience of trying to explain DbI to a couple of friends, it's
a hard to appreciate the paradigm if you're not already using it
casually, and so it would be even harder for me to make a case
for why it makes C++ concepts / Rust traits much less useful than
they're advertised to be.
The classic example would be walkLength [1]. However that example
does not make a good case because it could also be implemented
with overloading or dynamic casts (albeit at the cost of
inflexibility and/or runtime pessimization) in other languages
like C++ and C#. Personally, I really like things like Seb's
recent work on attribute propagation for
std.experimental.allocator.make and makeArray [2][3][4], but I'm
not sure if that's an example a beginner would appreciate.
[1]:
https://github.com/dlang/phobos/blob/v2.071.2-b2/std/range/primitives.d#L1577
[2]: https://github.com/dlang/phobos/pull/4680/files
[3]: https://github.com/dlang/phobos/pull/4682/files
[4]: https://github.com/dlang/phobos/pull/4683/files
More information about the Digitalmars-d
mailing list