nondescript/tests/sugar.nds

43 lines
710 B
Plaintext

// testing syntactic sugars
// :: piping function call
var double = funct(num) :result = num * 2;
var four = 2 :: double();
var multiply = funct(num, factor) :result = num * factor;
var six = 2 :: multiply(3);
print (four);
print (six);
//expect:4.0
//expect:6.0
print (1 + 2 * 3 :: tostring() + "2");
//expect:7.02
// indexing tables with .
var nested = @{
"lvl1" = @{
"lvl2" = @{
"lvl3" = 5
}
}
};
nested.lvl1.lvl2.lvl3 = 6;
print(nested.lvl1.lvl2.lvl3);
//expect:6.0
nested["lvl1"].lvl2["lvl3"] = 2;
print(nested.lvl1["lvl2"].lvl3);
//expect:2.0
nested["lvl1"]["lvl2"]["lvl3"] = -5.4;
nested .lvl1 .lvl2 .lvl3 :: print;
//expect:-5.4
// creating tables with : and no [] idents