this post was submitted on 06 Jan 2025
81 points (96.6% liked)
Programming
17760 readers
499 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
void
in Java andVoid
in Haskell are quite different. As the post explains, in Haskell it’s a type with no possible values. In Java, the equivalent would be a class without a constructor (not sure if that’s even possible). It defines a type, but you cannot construct a value or object with that type. The equivalent of Java‘s void in Haskell is the unit type()
which has exactly one possible value, also called()
. It can be returned by a function, but it does not give you any information, just like void. By the way, Rust also uses the unit type instead of void.You do have a
Void
type in Java if you really must specify a return type and don't want to return anything e.g. services and their tasks in JavaFx. The Task must have a return type thus you can use Void if the task doesn't actually return anything.Well, yeah, but that
Void
type is different than theVoid
type in Haskell.The Haskell-Void says that the function never returns. So, for example, if the function always goes into an infinite loop. Or only ever throws an exception or does a
System.exit(0)
. You cannot portray that in Java, to my knowledge.yeah that was the joke, thanks for explaining it