A silly little programming language.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
emacs
src
test
.gitignore
Guide.md
LICENSE
README.md
Setup.hs
TPL.cabal
todo.org

README.md

TPL

TPL is a dynamically typed, imperative, interpreted scripting language. The main design goal was flexibility coupled with simplicity: the base language is very minimal, with features powerful enough to meaningfully extend it. For example, you can write your own control structures like loops.

TPL is heavily influenced by JavaScript, Haskell and Scheme; I also took ideas from other languages I've used.

Documentation

Read all about the language in the Guide

This is also availabile as a Markdown page on Github.

Installation Instructions

To install, clone this repository and use cabal:

git clone git://github.com/TikhonJelvis/TPL.git
cd TPL
cabal install

If you use Emacs, you can also install a simple Emacs mode for TPL. To do this, copy emacs/tpl-mode.el to somewhere in your load path and add (require 'tpl-mode) to your .emacs file. This will automatically associate .tpl files with tpl-mode.

Future Features:

In the near future, I want to add:

  • better error handling and reporting
  • more standard functions (IO is particularly lacking right now)
  • an OOP system similar to JavaScript or Lua and unified with the scoping system

Example Code

Check out the base library for some example code. The library is in several files inside the src/base directory.

The library is mostly written in a very functional style. However, there are some interesting functions like partitionBy in base/list.tpl that are written in a more imperative style.