Chris Angelico wrote:
There's one other consideration. With Python functions, you often want to run a function for its side effects and ignore its return value.
You can't just ignore a return value in Haskell. The return value is always going *somewhere*. If you leave off an argument, the result is going to be a function instead of whatever type the function was meant to return. Since Haskell is statically-typed, this will give you a type error at some point.
print("Heading") print("=======") print
You're talking about I/O here, which complicates things somewhat. Essentially, the equivalent of 'print' is going to be a function that takes the value to be printed and returns another function of a specific type. If it's not the right type, it won't fit into the machinery that executes I/O operations. So leaving the argument off the print would lead to a type error, because you'd be trying to plug the print function itself into the I/O machine, and it's not the right type. -- Greg -- https://mail.python.org/mailman/listinfo/python-list