News for hackers. Stuff that matters.
Re:Programming with Nothing by dreamcompiler on Monday May 23, 2022 @12:18AM (#31475318)
It's true-ish, in many of the same ways Lisp can be described similarly. Pure lambda calculus is impractical except for pedagogy, so both Haskell and Lisp add enough knobs to make LC practical.

The big differences are:

1. Haskell is lazy while most Lisps are eager.

2. Haskell automatically curries; Lisp doesn't.

3. (1) and (2) enable Haskell to have a very different syntax from Lisp which is largely free of parentheses. And they remove some of the need for macros in Lisp. Not all but some.

4. Haskell has static type analysis with Hindley-Milner. Lisp does type checking at runtime, and optionally a little bit at compile time but it's by no means a global type inferencer like H-M. So Lisp potentially runs a bit slower because of this, but Lisp can also handle edge cases for types that static analysis cannot (because of the halting problem).

5. Haskell encourages a side-effect-free programming style; Lisp neither encourages nor discourages side-effects.

Re:Programming with Nothing by square_usual on Monday May 23, 2022 @12:43AM (#31475405)
I'm sure you already know this, but for the benefit of the uninitiated, Haskell's type inference isn't powered by the Hindley-Milner, but with a more advanced system called System F. It's a fascinating bit of computation to dig into, so I encourage anyone interested in typing to explore it further!
Re:Programming with Nothing by dreamcompiler on Monday May 23, 2022 @01:07AM (#31475499)
Didn't know that. Thanks.
Re:Programming with Nothing by kaba0 on Tuesday May 24, 2022 @02:16AM (#31488614)
> because of the halting problem

Correct me if I’m wrong, but aren’t types so-called “trivial properties “, on which Rice’s theorem doesn’t hold (and my thinking is that thus neither does the halting problem?). Though this perhaps depends on the type system in question (with dependent types being obvious counter-examples).