On 11/10/2013 08:48 AM, Nick Coghlan wrote:
On 10 November 2013 19:55, Tarek Ziadétarek@ziade.org wrote:
From the documentation example:
fun sum(l): cases(List) l: | empty => 0 | link(first, rest) => first + sum(rest) end where: sum() is 0 sum([1, 2, 3]) is 6 end It would make more sense to just bake py.test style rich assertions into the language in some way and let people write:
def sum(iterable): # implementation of sum assert sum() == 0 assert sum([1, 2, 3]) == 6
A mechanism to say "always execute assert statements in this module regardless of optimisation level" could also be useful.
Currently assert statements are removed if the -O flag is used, but somehow that never seemed quite right to me. It makes more sense to have a -A option to turn them on, rather than using -O to turn them off.
That change along with a way to "always execute asserts in this scope" would make asserts more useful.