The Lamb programming language - https://github.com/darkf/lamb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
5 years ago | |
---|---|---|
examples | 8 years ago | |
mods/std | 5 years ago | |
.gitignore | 9 years ago | |
AST.hs | 5 years ago | |
Interp.hs | 5 years ago | |
LICENSE | 5 years ago | |
Lamb.hs | 8 years ago | |
Parser.hs | 5 years ago | |
README.md | 9 years ago | |
lamb.cabal | 5 years ago |
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.