Margaret is a modern programming language focused around objects and messages. It offers powerful literals, easy to use objects and smalltalk-like message structures.
- Every value in margaret is treated as an object.
- There are no reserved words and no explicit syntax apart from message sends.
- Uses prototype based objects in the likes of Self or Javascript.
- Uses C-style literals like int, float, string.
- Implements tensors, hashes, tuples as modern built-in data structures.
- Runs on a portable, lightweight and embeddable stack based VM.
TODO Write installation instructions
($Margaret bind: #ultimate_answer: x => (
$true && $false not && ($nil is_nil?) if_false: {( exit: 0 )},
y = @self methods size + @super to_string length * 42,
["str", 42, 42.2, 0b0110, 0xbeef, 0o741,
{"k1": 42, k2: 43}, [< 1, 2], {< 1:1, 0:1}] each: { elem | (
puts: elem object_id,
)},
if: x < y then: { x } else: { y },
),
puts: (ultimate_answer: 42))
- Fork it (https://github.com/Oblivious-Oblivious/margaret/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
- oblivious - creator and maintainer