Hashell
Jump to navigation
Jump to search
Hashell(pronounced as hash-hell) is a version of Haskell that's "hell" to use. it is a very minimal Haskell subset.
the subset
Hashell permits only these chars: =>\[]().:`-?x_*&
operators
with this subset you can create some operators:
(.).(.) which takes a one-parameter function on the left and a two-parameter function on the right, and yields a new two-parameter function that passes the result of the right-hand function to the left-hand one(cant be used in pure form must be variable) >>= which is haskell bind operator (:[]) a function that takes a value and produces the singleton list containing that value (&&&) takes two functions and makes a tuple updater (***) takes two functions and makes a tuple-making function out of them . the same as B from Combinatory logic(lol)
and heres some operators that idk what they do:
>> :>
Complexity class
Hashell is universal for SKI combinatory logic:
-- I xxxx = \x -> x -- K xxxx = \x _ -> x -- S xxxx = \x xx xxx -> (x xxx) (xx xxx) -- Y xxxx = \xx x -> x (xx x)
Note that, since Haskell's type system is still in place, only well-typed expressions can be provided; the Turing bird is not legal. However, a lazy Y combinator is available.