The Lamb programming language - https://github.com/darkf/lamb
Find a file
2017-06-06 08:38:36 -07:00
examples examples: update association_list 2014-05-28 18:39:46 -07:00
mods/std Add a base64 encoder to std 2017-06-01 21:31:33 +00:00
.gitignore add .gitignore 2013-10-20 17:41:54 -07:00
AST.hs add bitwise operators 2017-06-01 20:26:33 +00:00
Interp.hs Add ord/chr builtins 2017-06-01 21:30:44 +00:00
lamb.cabal lamb.cabal: change executable name, add more build deps 2017-06-01 20:26:27 +00:00
Lamb.hs Added error for each missing file. 2014-05-29 03:31:13 +02:00
LICENSE Fix somehow-missing LICENSE with zlib license text 2017-06-06 08:38:36 -07:00
Parser.hs Add \0 escape sequence 2017-06-01 21:30:58 +00:00
README.md update README 2013-10-23 04:08:45 -07:00

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.