Hell is a shell
scripting language that is a tiny dialect of Haskell that I wrote for my
own shell scripting purposes.
#!/usr/bin/env hell
main = do
Text.putStrLn "Please enter your name and hit ENTER:"
name <- Text.getLine
Text.putStrLn "Thanks, your name is: "
Text.putStrLn name
Overview
- Use a faithful Haskell syntax parser.
- It has no imports/modules/packages.
- It doesn’t support recursive definitions, but can use
fix
to do so.
- It supports basic type-classes (Eq, Ord, Show, Monad), which are
needed for e.g. List.lookup and familiar equality things.
- It does not support polytypes.
- It uses all the same names for things (List.lookup, Monad.forM,
Async.race, etc.) that are already used in Haskell.
To read more, see my blog post about Hell.