Code Monkey home page Code Monkey logo

language-limp's Introduction

Limp

Limp is an attempt at defining a programming language syntax that is a mix of Haskell and YAML. Limp pushes indentation dependence to the limit by using it more uniformly and more broadly. For example, the following Limp code

some-function
    nested-function1 arg1 arg2
    nested-function2 arg3 arg4

is parenthesized as

(some-function
    (nested-function1 arg1 arg2)
    (nested-function2 arg3 arg4))

as a reasonable person might expect, whereas Haskell would interpret it as

((((((some-function
    nested-function1) arg1) arg2)
    nested-function2) arg3) arg4)

or the more familiar

some-function nested-function1 arg1 arg2 nested-function2 arg3 arg4

This happens because Haskell ignores indentation in expressions, whereas they are treated uniformly in Limp.

Additionally, Limp is almost homoiconic in the sense that a Limp program is spiritually a YAML document (except with a slightly different syntax): it is composed of (nested) lists and dictionaries of some base syntactic categories like integer literals and identifiers.

The name "Limp" is meant to be reminiscent of [Lisp](https://en.wikipedia.org/wiki/Lisp_(programming_language), since Limp is similar to Lisp syntactically except for it's use of indentation to signify grouping as opposed to parentheses.

Also featuring:

  • Mixfix operators borrowed form Agda.
  • Syntactically meaningful comments: comments are not plain strings; they have the same nested structure as code, and in fact, code and comments can be mutually nested. Code in comments is type-checked.

Installation

Use Stack: stack install limp.

Development

We exclusively use Stack for development.

Usage

limp --help

language-limp's People

Contributors

cacay avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.