[fine] Design notes, more garbage
This commit is contained in:
parent
19e57db724
commit
e66ffbb5ae
1 changed files with 25 additions and 0 deletions
|
|
@ -39,3 +39,28 @@ The `new` keyword is a compromise: we know that the context
|
|||
immediately following the `new` keyword is always a type expression,
|
||||
so we know that e.g. `<` or whatever means "generic type parameter"
|
||||
and not "less than".
|
||||
|
||||
## Lambdas/Closures/Anonymous Functions
|
||||
|
||||
Looking for a syntax here; I want to keep `fun` as a declaration like
|
||||
`let` and not let it enter the expression space. I don't like
|
||||
fat-arrow syntax because it makes expression parsing very ambiguous,
|
||||
potentially requiring a lot of lookahead. (TODO: Is that true?)
|
||||
|
||||
Maybe a leading character like ` \x => x+1 ` or ` \(x,y) => x+y `?
|
||||
|
||||
## Interfaces/Traits/Whatever
|
||||
|
||||
These are incomplete structural types. Methods are easier to make
|
||||
compatible than members, but members should also work so long as they
|
||||
are strict prefixes of the thing.
|
||||
|
||||
What about sound casting with narrowing? That's union types baby, do
|
||||
we really want those? It could be neat if we're doing otherwise
|
||||
structural-compatibility.
|
||||
|
||||
## On Objects and Classes
|
||||
|
||||
Sometimes I think it should all be structural types.
|
||||
|
||||
Maybe later there can be anonymous types that match shapes.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue