On Friday, 25 May 2018 at 02:43:39 UTC, Jordan Wilson wrote:
On Thursday, 24 May 2018 at 23:22:56 UTC, IntegratedDimensions
wrote:
the idea in the first place. I needed a hammer but no one
invented it. If I give you my use case then there would be two
main outcomes: You attempt to find a workaround for the use
case or claim that it is not applicable. These are the "I have
a rock that should work as good as that hammer thingy you
want" and "Hammers are useless".
3rd outcome: noobs like me who read the forums who benefit from
such discussion.
Of course, you could be as disinterested in the 3rd outcome as
you are the 1st and 2nd, and that's completely fair.
Jordan
Giving specific examples that are not applicable to your
knowledge base won't help you. If you are too noobish to see how
unifying foreach across non-arrays is useful then you have no
experience where it is. Sure I could give some examples but then
you have the option of excepting them as useful or saying they
are too trivial.
If you can't think of examples on your own then you are probably
not ready for the increase expressiveness of what the feature
allows. It simply means don' t use the new feature. Why worry
about something you don't understand?
void foo(T)(T t)
{
foreach(a; t)
{
}
}
Does that help? I doubt it. If you are too much of a noob you
won't get why the above makes certain things easier. If you don't
have a good working knowledge of templates then you won't see how
such a feature enhancement can simplify things.
So, I will solve the homework problem for you:
auto max(T)(T t)
{
baseTypeOf(T) a;
foreach(a; t)
a = max(a,t)
return a;
}
max(3) = 3
max([3,4,5]) = 5
See? and this is just an arbitrary example that I hope makes you
happy. My examples are more complex and I don't see why it is
necessary for me to waste 30m of my time extracting and
developing a demo just to show that the feature is useful. It
really boils down to the fact that if you can't see it being
useful to you then it isn't and if you can then it is. A noob
isn't going to be able to determine if the feature is sound or
not so it is pointless for a noob to really worry about it.