On Thursday, 27 August 2020 at 20:56:43 UTC, Twilight wrote:
On Tuesday, 25 August 2020 at 02:11:42 UTC, data pulverizer
wrote:
I have a draft new blog article "Introduction to programming
with compile time sequences in D", it's on Github and I would
appreciate feedback before it goes live
https://gist.github.com/dataPulverizer/67193772c52e7bd0a16414cb01ae4250
Comment welcome.
Many thanks
Not being a Dlang expert, I probably qualify as the intended
target audience for this article and having absorbed your
previous article so readily, I thought I would try to expound a
little where I stumbled with this article.
I was clipping along until I reached the "Replacing a single
item by index" section. Having mentioned earlier that AliasSeq
was defined in std.meta, I thought this section started out by
saying that this was the implementation of the Replace
meta-function in the internals of std.meta, and consequently,
because it is marked as private (to the std.meta module), I can
not use this function (confusingly). As you can see, the
wording took me down a path you did not intend. When I reached
the bottom of this section, it was helpful to see the intended
call with 3 arguments. The earlier 4 arguments was puzzling. I
now think that the "internal" implementation was meant to
convey the role that "ReplaceImpl" would if this were C++
templates (with the extra argument used to count to the match).
Anyway, this particular section seems to be better digested for
me from the bottom upwards, i.e., starting with an example of
its use.
Also, the Join function might be better placed in the previous
section.
Do consider that I may just be a little off in my reading
comprehension today so please weigh my thoughts accordingly. I
have greatly appreciated the recent articles by you and others.
Thanks authors!
Thanks for your feedback, when I look at my introduction I
clearly mention the `text` function that I imported from
`std.conv` but not `AliasSeq`, and `Nothing` that I implemented
from `std.meta`, I have now put these in the introduction along
with `text` which should make things clearer.