SVO

From Adam Colton
Jump to navigation Jump to search

I am going to give precedence to SVO ordering.

Functions

I'm already leaning towards always using types instead of args on functions, this could take it all the way:

 {Student: adam, Class: CS201} => Enroll

I think this also works nicely for expressing multiple operations:

 Document.New => Add {Title: "My Document"}

A side note on this; generally () distinguishes a call from a reference

 foo = Document.New
 foo = Document.New()

but that doesn't work with this syntax. But I think we can do it with pointer syntax

 foo = *Document.New // pointer to function
 // or
 foo = Document.*New
 // and to take a pointer to the result
 foo = *(Document.New)

Assignment

is already done this way

 adam = Person{Name: "Adam"}