type Row { name: Text count: Int } sign(value: Int < 0) (answer: Int) pure { answer = -1 } sign(value: 0) (answer: Int) pure { answer = 0 } sign(value: Int > 0) (answer: Int) pure { answer = 1 } main() (answer: Int) { answer = sum([10, 20, 11]) + sign(3) } copyCheck() (answer: Bool) { original = Row { name = "初始" count = 1 } changed = original changed.name = "修改" answer = original.name == "初始" and changed.name == "修改" } join(first: Text, second: Text) (answer: Text) pure { answer = first + second } textCheck() (answer: Text) { value = "雪" joined = join(value, value) answer = joined + value } increment(value: Int) (answer: Int) pure { answer = value + 1 } overflowCheck() (answer: Int) { answer = increment(9223372036854775807) } change(value: Row) (answer: Row) { value.name = value.name + "新" answer = value } pair(value: Int) (count: Int, name: Text) pure { count = value name = "雪" } total(values: List) (answer: Int) pure { answer = sum(values) } verify() (answer: Bool) { original = Row { name = "雪" count = 1 } changed = change(original) values = [1, 2, 3] result = pair(42) decimal = 1 / 8 floating = 1.5e0 + 2.0e0 skipped = false and overflowCheck() > 0 answer = main() == 42 and copyCheck() and textCheck() == "雪雪雪" and original.name == "雪" and changed.name == "雪新" and total(values) == 6 and sum(values) == 6 and result.count == 42 and result.name == "雪" and decimal == 0.125 and floating == 3.5e0 and not skipped and length("雪山") == 2 and sign(-3) == -1 and sign(0) == 0 } arithmetic(value: Int) (answer: Int) pure { answer = (value * 3 + 7) // 2 }