I\'m studying clojure but not quite clear on the difference between the :while and :when test:
:while
:when
=> (for [x [1 2 3] y [1 2 3] :while
:when prevents any inner 'for' bindings or its body expression from being evaluated for that one iteration, acting like the 'filter' function.
:while halts this binding from proceeding any more, acting more like 'take-while'