Skip to content

LambdaFiend/SKICCI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SKICCI

SKI-Combinators Calculus Interpreter.

Introducing

This is an interpreter made for anyone who might be interested in experimenting with the SKI-combinators calculus.

Supports environment variables for SKI-terms, showing the contents of an environtment variable, displaying the list of environment variables, checking for syntactic same-ness, evaluating n-steps at a time (in-place, for environment variables), left-most reduction and right-most reduction.

I'll be adding a couple more features, eventually.

Running the program

Haskell and Cabal should both be installed.

cabal build

cabal run

Type :?, :h or :help for help within the program.

Syntax and Semantics

Syntax Semantics
S The S-Combinator.
K The K-Combinator.
I The I-Combinator.
t1 t2 An application.
It packs pairs of terms.
It's useful for packing
terms into a single "thing"
or manipulating the order
of the terms.
x A variable.
Must be lowercase, and
can end on any amount
of primes.
  • I x -> x
  • K x y -> x
  • S x y z -> (x z) (y z)

Where x, y and z can be any SKI-Combinators term.

These are the weak-reduction (->w) rules for combinator terms.

Applications are conventionally left associative.

There's no need to put spaces in-between combinators, as they do not share names.

Reporting issues

Do not forget to report any bugs. Contact me, otherwise you can create a new issue on this repository. Thanks!

About

A Haskell implementation of the SKI-Combinators Calculus. A REPL interpreter.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors