An esoteric language running with SECD machine, implemented in Haskell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.gitignore
LICENSE
README.md
Setup.hs
calljj.cabal
stack.yaml

README.md

calljj

An esoteric language running with SECD machine. The name was based on a pun of a popular Taiwanese music MV and lisp's callcc. It is bascially Grass language with different symbols in use. The reference implementation on the official website doesn't have Haskell, therefore this implementation adds value.

Unlike other esoteric language, Grass language is based on lambda calculus, therefore it would be helpful for beginners to learn lambda calculus. On the other hand, knowing SECD Machine would be helpful on how to use the most basic structures to implement a functional language.

The rationale behind of this project was to leverage some pun to make my Taiwanese friends would like to learn more about functional language.

Examples

  • Print 「姐」
姐姊姊姐姐姐姐
  • Print 1+1 ,And the answer would be encoded as the number of「姐」
姐姐姊姊姐 叫我姐姐姐姐姊姊姊姐姐姊姐姐姊姊姊姊姊姊姐姐姐姐姊姐姐 叫我姐姊姊姐姐姐姊姐姐姐姐姊姐姐姐姐姐姐姊姐姐姐姐姐姐姐姐姐

Installation

  • With stack
git clone https://github.com/MnO2/calljj.git
stack build .
  • With cabal
git clone https://github.com/MnO2/calljj.git
cabal sandbox init
cabal install