[plt-scheme] re: the fastest way to calc a cartesian product
On Sep 19, 2006, at 10:02 AM, Barland, Ian wrote:
> This is NOT the answer you were looking for...
>
> But if you want to allow *infinite* sets, and take "element-of" as
> your only
> primitive (and forgo being able to iterate over elements of the set),
> you can represent sets as their element-of (indicator) function.
> Then Cartesian-product (and union and intersection) are O(1) :-)
>
> An uncommented example:
> ===========
> (define cars (lambda (elt) (memq elt '(vw saab bmw audi))))
> (define evens (lambda (elt) (and (number? elt) (even? elt))))
>
> (define (element-of? elt set) (set elt))
>
> (define (cartesian-product A B)
> (lambda (elt)
> (and (length=2? elt)
> (element-of? (first elt) A)
> (element-of? (first elt) B))))
ITYM "second" ?
John
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2484 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20060920/1f883479/attachment.p7s>