If this is the worst you can come up with, 100% worth the price, would recommend ad-hoc polymorphism 10 times out of 10.
Programming Languages
Hello!
This is the current Lemmy equivalent of https://www.reddit.com/r/ProgrammingLanguages/.
The content and rules are the same here as they are over there. Taken directly from the /r/ProgrammingLanguages overview:
This community is dedicated to the theory, design and implementation of programming languages.
Be nice to each other. Flame wars and rants are not welcomed. Please also put some effort into your post.
This isn't the right place to ask questions such as "What language should I use for X", "what language should I learn", and "what's your favorite language". Such questions should be posted in /c/learn_programming or /c/programming.
This is the right place for posts like the following:
- "Check out this new language I've been working on!"
- "Here's a blog post on how I implemented static type checking into this compiler"
- "I want to write a compiler, where do I start?"
- "How does the Java compiler work? How does it handle forward declarations/imports/targeting multiple platforms/?"
- "How should I test my compiler? How are other compilers and interpreters like gcc, Java, and python tested?"
- "What are the pros/cons of ?"
- "Compare and contrast vs. "
- "Confused about the semantics of this language"
- "Proceedings from PLDI / OOPSLA / ICFP / "
See /r/ProgrammingLanguages for specific examples
Related online communities
- ProgLangDesign.net
- /r/ProgrammingLanguages Discord
- Lamdda the Ultimate
- Language Design Stack Exchange
Plus the issue remains if the author replaced Vec
with Vec
of Vec
instead of Option
of Vec
, or if iter().count()
meant something completely different than “count # of iterated elements” (both pointed out in HN comments).
???
I fail to see the point of this blog post.
The example given makes no sense (maybe because it's very simplistic, and a more complicated one would show the point better?), you would NEVER use .iter().count()
if you had direct access to the Vec. The iterator is more general in this sense.
You would use it if, say, your Settings struct was generic over an Iterator type, and in that case it's the whole point, isn't it?? Like what???
Plus, I wouldn't say this erodes type safety, it's a lot more like a logic error.
Yeah this one's a miss on my end. I saw "ad-hoc polymorphism is UNSAFE?" and well, it does a better job reinforcing that ad-hoc polymorphism is not unsafe.
Author should have wrote a piece "how even type-safe programs can fail" and used his example to show that. Because what this really shows is that type-safety doesn't prevent programs with the correct types but bad semantics. But that's not ad-hoc polymorphism; it can happen anywhere (sans ultra-specific types) including even the author's workaround if he used Vec<Vec
instead
I think the author does not deserve Haskell