Releases: drizzle-lang/drizzle
Releases · drizzle-lang/drizzle
v0.1.0-alpha
The very first release of a somewhat working language!
Drizzle is a large project that I want to use as a source of learning, gaining knowledge on how languages and features of them are implemented (for example GC, Type Safety, and more).
This release contains the bones of Drizzle, having finished the interpreter book.
It is missing a lot of features which is a situation I will remedy sometime soon (see here for the Drizzle roadmap), after I deal with some of my personal backlog.
Implemented Features
- Integers
- Booleans
- Lists (
[1, 2, 3]
) - Dictionaries (
{'a': 1}
) - Strings (
'foo'
) - Indexing operations on lists and dicts (
[1, 2, 3][0] # 1
) - Comments (
#
) - Basic arithmetic for integers (
+
,-
,*
,/
) - Comparison operators (
<
,>
,==
,!=
) - String concatenation using the
+
operator - Conditionals (
if
,elsif
,else
) - Function definitions (
def
) - Assignment (
let foo: str = 'bar'
) - Closures
- First order functions
- The following builtin functions;
print
- prints stufflen
- retrieves the length of strings and listskeys
- returns a list of all the keys of a dictionaryvalues
- returns a list of all the values of a dictionarypush!
- appends an item to a list. This method works in-place, as evident by the!
in the function name