3 ms·
> ... which of course has no equivalent in Clojure, Scheme, or really any other language I can think of. Python, for example: def cross(xs, ys): re
by gongador 13y ago
> ... which of course has no equivalent in Clojure, Scheme, or really any other language I can think of.
Python, for example:
def cross(xs, ys):
return [[x, y] for y in ys for x in xs]
LOOP in disguise :) (at least to my (very possibly faulty) understanding.)
- kragen 13y agoA number of languages have listcomps that can do this, and which are actually more useful for this than CL's LOOP macro, but the thing I meant to point at was the APPENDING bit. I guess (loop for x in xs append (loop for y in (f x) collect y)) is awfully similar to [y for x in xs for y in f(x)], though.
- cgag 13y agoIncluding Clojure for those who might not know: (defn cross [xs ys] (for [x xs, y ys] [x y]))