[Python-ideas] where statement in Pyret

Tarek Ziadé tarek at ziade.org
Sun Nov 10 10:55:16 CET 2013


Hey

I've read about Pyret on hackernews: http://www.pyret.org/

and found the 'where' statement very compeling. Functions can end with a
where that contains small unit
tests.

>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's quite similar to the doctests ideas I guess - but not intended to
be documentation like them.

I ended up disliking docttests because of this doc+test duality by the
way: it often ends up as a
not so good documentation and not so good tests.

Anyways, having a dedicated keyword to append after a function some
tests as part of the language
has benefits imho:

- the scope is reduced to the function - so it helps making 'real'
isolated unit tests.
- we do have the unittest conventions, but here it make tests a first
class citizen in the language.

Cheers
Tarek

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20131110/1759b7f1/attachment.html>


More information about the Python-ideas mailing list