The Lamb programming language - https://github.com/darkf/lamb
Go to file
darkf 30aaf4ed80 add loop example 2013-10-23 19:35:35 -07:00
examples add loop example 2013-10-23 19:35:35 -07:00
.gitignore add .gitignore 2013-10-20 17:41:54 -07:00
LICENSE add README and LICENSE, and copyright headers 2013-10-20 17:41:12 -07:00
README.md update README 2013-10-23 04:08:45 -07:00
ast.hs add string patterns 2013-10-23 15:31:37 -07:00
interp.hs add loop BIF 2013-10-23 19:33:44 -07:00
lamb.hs transition InterpState to use StateT IO 2013-10-22 17:24:28 -07:00
parser.hs Fix identifiers starting with t or f not parsing 2013-10-23 19:33:13 -07:00

README.md

Lamb is a toy dynamically typed functional programming language

It's not meant for real-world use but for educational purposes on writing an interpreter with pattern matching in Haskell.

Features

  • No re-assignment (i.e., once you bind a value, you can't re-assign it)
  • Pattern matching: f([]) -> "nothing". f([a]) -> one thing".
  • Imperative I/O
  • Higher-order functions
  • Lexical scope

Hello World!

From examples/helloworld.lamb:

hello() -> "hello, " + hello("world").
hello(object) -> object + "!".

putstrln(hello()).

See other examples in the examples directory.

License

Licensed under the terms of the zlib license. See LICENSE for details.