Lutz Hamel
Lutz Hamel
The function `length` is not part of the object interface ``` ast> let o = A(1,2) ast> o @length() error: (id...) is not a member of type A ast> ```...
When trying to add a constant to a list we can an expected error, but the error message itself makes no sense: ``` ast> [1,2,3]+1 error: found 'list + integer'...
We should create an additional test suite based on the programs in, https://www.geeksforgeeks.org/python-programming-examples/#moreprograms We should add these programs to the Asteroid in Action doc,
An idea on how to look at parameterized patterns. Currently Asteroid supports parameterized patterns via variables read from the environment, ``` Asteroid Version 2.0.1alpha (c) University of Rhode Island Type...
The `in` predicate clashes with the `in` keyword in `for` loops necessitating the use of excessive parens, e.g. ``` for (x,y) if x > y in pairlist do assert(x>y). end...
It is often convenient to express a pattern match on an object based only on a single field like ``` structure Person with data name. data age. data profession. end...
Pattern matching with expressions that contain expression that are not constructors like, ``` let 1+1 = 2. ``` need better error messages explaining that patterns with containing functions are not...
The `nonlocal` command works analogous to the `global` command except that it will inspect the surrounding scopes rather than just the global scope. Example, ``` load system io. function myfunc1...
Under certain debugging circumstances it is useful to know exactly where a program is in a file. For this we propose a builtin variable: `__lineinfo__`. A user can read this...
The following code demonstrates a scoping bug ``` load system io. function foo with x do if true==x do let a = 7. foo(false). else do io @println(a). end end...