Comment

Comment by dwohnitmok

I really like the language, but you're exaggerating the verbosity of the Haskell code by not comparing them in an apples-to-apples way.

Here's the same Haskell code written in the same way you've written your Kind code.

    blocks entity floats ghost = case ghost of
      True -> True
      False -> case entity of
        Creature{..} -> True
        Tile{..} -> not isWater || True
        Wall{..} -> True
        Fire{..} -> False
The `{..}` is from `RecordWildCards`, a common extension.

I do like the omission of `let` and `where` in favor of just variable definitions. For monadic notation, instead of `get` and `return` I'd prefer something like https://github.com/monadless/monadless

The main problem with `do`-inspired monadic notation is that it forces monadic code to always be in A-normal form, which is pretty annoying. It'd be far nicer to allow for monadic code to look the same as normal code, just with say an extra brace (such as "IO { }") to indicate that you're inside a monad.

parent dwohnitmok 5 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton