Did you know ... Search Documentation:
Pack cosmos -- docs/index - Copy (2).md


Cosmos is an in-development logic-functional, statically typed prototypal language.

rel main()
    x = io.read()
    io.writeln("hello, "+x+'!')

The above might look like imperative code. In fact, it's made to resemble a modern scripting language- or perhaps even allow for an imperative-style of code.

However, it's a fully functional (or actually, logic) programming language.

The first hint of this is the usage of rel in the above example (standing for relation) rather than, say, fun (function).

In fact, we borrow from many schools-of-thought. Cosmos has a...

  • Fully procedural, whitespace-sensitive syntax...
  • Functional features... (immutability, closures, type inference)
  • All while being a logic programming language... (relations, non-determinism)
  • ...with objects! Cosmos is still in-development. Documentation is provided for development.


See at the Quickstart or the full Guide*.

  • A few more notes (Quickstart 2.0) The guide is meant to be a more comprehensive guide and documentation. It may perhaps need some proof-reading. The Quickstart is a quicker intro and assumes you have prior experience with procedural or functional languages.


See the Download section.

  • Comparison to Prolog, etc.
  • A few more notes (Quickstart 2.0) <!-- # Why Cosmos?

    Cosmos is a simple language that combines procedural, functional, logic programming and more.

    It's simple --

    It's a simple, minimal and user-friendly language.

    Since it's a somewhat minimal language, it can be learned in a quick time-- as soon as you get used to programming in a LP paradigm.

    Once you learn the basics, it's easy to use.

    It's safe --

    The language is checked for type, mode and runtime errors.

    Programming with relations -- -->