I'm working on a new programming language. I wrote some parts of the compiler. One time in java and one time in C and here is the source code.
I want to show you a piece of the language syntax, so comment on me about this syntax. I think you can understand the code is what about, but if you have a question ask me.
# comments #- multi-line comments builtins types: int 123 float 1.23 char 'a' string "Hi" [int, char] [10, 'a'] <- an array of one int and one char array[int] [10, 20, 30] <- an array of ints {a: int, b: char} {a = 10, b = 'a'} <- a named tuple or structure function def (a) = (a) <- a lambda or function boolean true || false null null -# # any value type can be stored in a var a = 100 a = "Hi" a = 1.23 type null_string = null | string # c can be null or a string var c: null_string = null c = "Hi" def type uint = (self ?= int) && (self >= 0) # the following line will throw a compiler error # var b: uint = -100 # immutable variable const d = 10 # lazy evaluation variable let e = c + " World" c = "Hello" var f = e # f == "Hello World" let g = c g = "Goodbye" f = e # f == "Goodbye World" def range(const start: int, const end: int; const step: int = 1): array[int] var i = start if step >= 0 let not_end = (i < end) if step < 0 let not_end = (i > end) end while not_end yield i i += step end end def sum(var *args: int): int var sum: int = 0 for var i = 0; i < args.len; i += 1 sum += args[i] end return sum end def main(args: array[string]) # print sum of 1 to 500 print(sum(*range(1, 500))) end
Top comments (1)
What problem is this language trying to solve?