Re:Modern C++: 7 Ways to Fake It Until You Have It
by jholman on Tuesday September 04, 2018 @05:25AM
(#17907719)
Is it worse than calling your auto-resizing-sequence type "vector", even though a vector is properly a tuple of (arbitrary) fixed size, and is incomparable with another thing of any other size?
(okay, I guess it might be worse than that)
Re:Modern C++: 7 Ways to Fake It Until You Have It
by stochastic_monk on Tuesday September 04, 2018 @12:28PM
(#17910239)
Yes, because vector is a library, not part of the core language itself.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by Koshkin on Tuesday September 04, 2018 @01:25PM
(#17910874)
Well, not just some library. (The 'standard library' should be seen as part of the language.)
Re:Modern C++: 7 Ways to Fake It Until You Have It
by stochastic_monk on Tuesday September 04, 2018 @01:41PM
(#17911065)
True, but there is a huge difference between a standard library feature and a keyword.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by Koshkin on Tuesday September 04, 2018 @06:10PM
(#17913287)
Not really... Not in the case of the standard library anyway.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by stochastic_monk on Tuesday September 04, 2018 @07:56PM
(#17913932)
A keyword is a more core part of the language than the standard library. I could re-implement my own vector. I cannot add my own keyword.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by Koshkin on Wednesday September 05, 2018 @09:27AM
(#17917692)
No, you cannot/wouldn't reimplement std::vector (not in the sense you are implying).
Compiler writers often extend the language with new keywords.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by stochastic_monk on Friday September 07, 2018 @08:01AM
(#17933567)
Can you elaborate on the last point? Do you mean things like macros they use, e.g., concepts lite, or __builtin* functions?
I still feel like a standard container is less fundamental than keywords, but I value your perspective.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by Koshkin on Friday September 07, 2018 @03:29PM
(#17936988)
Yes, built-ins, intrinsics, and extensions.
My original point was simply that std::vector, say, is just as good a "keyword" as any - perhaps, not because you cannot redefine it but because you wouldn't, and if you didn't like what it does, you'd use/implement something else.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by AstralStorm on Tuesday September 04, 2018 @04:18AM
(#17907461)
Applicative is actually a lying name as it has little to do with Applicative category in maths. (an Arrow does, is a subkind of mathematical applicatives)
It is in the same category of lies like C++ calling its thing a class. (except C++ does not try to have math background)
I prefer a common name to a wrong and confusing name.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by stochastic_monk on Tuesday September 04, 2018 @12:29PM
(#17910245)
How is a C++ not a class? It’s a class of objects satisfying certain operations and possessing certain attributes.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by phendrenad2 on Tuesday September 04, 2018 @03:28AM
(#17907247)
As a teen, I was introduced to C++ by a friend (who was trying to get me to stop programming in BASIC). We had a serious bit of confusion for a moment when I couldn't understand where he was watching/attending/accessing these "classes".
Imagine how much more fun we could have had if they had "concepts" in the language back then!
Giving some particular construct in your language the official name "Concepts" is just unbelievably fucking atrociously stupid. Inexplicably greedy and needlessly destructive.
Say what you will about Haskell's user-hostile jargon, but even they had the sense to rename a concept that was originally called "Idiom". (now "Applicative")