github

raviqqe / tisp

  • понедельник, 22 мая 2017 г. в 03:12:15
https://github.com/raviqqe/tisp

Go
"Time is Space" programming language



Tisp

wercker codeclimate Go Report Card codecov MIT license Google group

logo

Tisp is a "Time is Space" programming language. It aims to be simple, canonical, and practical.

This baby project is under heavy development. Any contributions would be appreciated. Join the Google group today!

Current status

See the issues. Tisp is actively developed and work in progress. Stay tuned!

Installation

go get github.com/raviqqe/tisp/src/cmd/tisp

You need Go 1.8+.

Features

  • Purely functional programming
    • Impure function calls in pure functions are detected and raise errors at runtime.
  • Implicit parallelism and concurrency
    • Most of the time, you don't need to parallelize your code explicitly. Tisp does it all for you!
    • Inherently, programs written in Tisp run concurrently and can run parallelly.
  • Optional injection of parallelism and causality
    • You can also increase parallelism of your code or run functions sequentially using par or seq primitives. (par is not implemented yet.)
  • Asynchronous IO
    • Every IO can be run asynchronously by the par primitive.
  • Dynamic typing

Documentation

Visit here.

Examples

Try scripts in test directory (test/*.tisp) by running:

tisp test/$filename.tisp

Some examples in examples directory work but not all because some features are not implemented yet.

Contributing

Please send pull requests, issues, questions or anything else. See also the documentation on how to develop Tisp.

FAQ

What languages is Tisp inspired by?

The following is their list with ideas and technologies which come from them.

  • Haskell
    • The concept of "Time is Space"
    • Lazy evaluation and data structures to realize it
  • Clojure
    • Everything is a value; no object system
    • The syntax and macro system
  • OCaml
    • The syntax close to pure lambda calculus and of mutual recursion
  • Python
    • The Zen (See python -c 'import this'.)
    • The syntax of function calls with positional and keyword arguments
  • Go
    • Simplicity
    • Tisp utilizes Go's coroutine runtime.

License

MIT