Skip to content

Releases: drizzle-lang/drizzle

v0.1.0-alpha

07 Mar 11:42
caef53b
Compare
Choose a tag to compare
v0.1.0-alpha Pre-release
Pre-release

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 stuff
    • len - retrieves the length of strings and lists
    • keys - returns a list of all the keys of a dictionary
    • values - returns a list of all the values of a dictionary
    • push! - appends an item to a list. This method works in-place, as evident by the ! in the function name