// a test about collections var returnlist = proc() @[1, 2, 3, 4] ; //expect:3.0 print (returnlist()[2]); var a = @[@[1]]; print (a[0][0]); //expect:1.0 a[0][0] = 3; print (a[0][0]); //expect:3.0 // adding new values var letters = @["a", "b", "c"]; var letterNumbers = @{}; letters[3] = "d"; print(letters[3]); //expect:d var i = 0; while (i < #letters) { letterNumbers[letters[i]] = i; i = i + 1; }; print(letterNumbers.d); //expect:3.0 // from reference.md var list = @[12, "fox", false]; //expect:fox print(list[1]); list[0] = list[0] * 3; print(list[0]); //expect:36.0 list[3] = 50; print(list[3]); //expect:50.0 print(#list); //expect:4.0 // table example from reference.md // defining a table var table = @{ [1] = "one", // keys are normally in brackets [] [2]: "two", // both = and : are allowed three = 3, // string keys can be shortened - no brackets or quotes four: 4, // string keys can also use colon [2+3] = "five" // the square brackets can enclose whole expressions, just like the values can be expressions }; // printing a member print(table[1]); // will print one //expect:one // indexing with dot print(table.three); // will print 3.0 //expect:3.0 // adding new elements table[6] = "six"; // printing the number of elements print(#table); // should print 6 //expect:6.0