Can arrays and dictionaries skip the [] characters? --------------------------------------------------- Reading from an array. Some kind of "default method" would be called on `arr`. Note that `arr` is always a local variable, parameter (assuming that SLUL doesn't have top-level constants): int i = arr 1 bool p = grid x, y Similarly, there could be an "index assignment method": arr 1 = 123 grid x, y = true This would require that `=` is an operator with very low precedence. Possibly some types could even override it? Reference vs copying assignment ------------------------------- Should there be a distinction between copying and referencing? Example using symbols: # Simple value type int i <- 123 # referencing (decide on an operator to use) File f2 <= f1 File f2 <-> f1 # copying Array of int arr2 <- arr2 Example using `=` and keywords: # Default could be "single-word semantically-copy-like operation" # For elementary types and referenced immutable types, it's simple: int i = 123 Array of int arr2 = arr1 # For mutable reference types (i.e. when the source is mutable or already aliased), # there's a distinction. File f2 = ref f1 Array of int arr2 = copy arr1 Advantage of the keyword solution: It works for function parameters as well! Distinguishing between assignment and comparison ------------------------------------------------ Possible syntaxes for assignment: = <- (but less intuitive to type) := (used by many languages, but why?) set d,s (doens't work with array-index assingment!) Note that some syntaxes make += -= style operations impossible. * Work: =/+= set/inc * Doesn't work: <- := Possible operators for comparison: (should be disallowed where it doesn't make sense, e.g. comparing two file/network streams for equality is pointless) == = (but leads to a bad habit, that can cause problems when coding in other languages) equal a,b (but this still has a special character, so maybe == is better?) Possible operators for reference comparison: same a,b