# [plt-scheme] Is there a set data-type?

 From: Laurent (laurent.orseau at gmail.com) Date: Fri Feb 5 11:15:57 EST 2010 Previous message: [plt-scheme] Is there a set data-type? Next message: [plt-scheme] Is there a set data-type? Messages sorted by: [date] [thread] [subject] [author]

```Does something like this sounds interesting and generalizable for infinite
sets?
Mixing hashes on finite sets for speed and recurrence for infinite sets in
the default case (trivial example):

(define h (make-hash))

(for-each (λ(n)(hash-set! h n #t))
'(0 2 4 6 8)) ; could be a lot larger of course

(define (odd? n)
(if (> n 0)
(hash-ref h n
; default case:
(λ()(odd? (- n 10))))
#f))

> (even? 9876)
#t
> (even? 9877)
#f

Or maybe that's just a well-known fact...

Laurent

On Fri, Feb 5, 2010 at 15:42, Laurent <laurent.orseau at gmail.com> wrote:
> On Fri, Feb 5, 2010 at 15:41, Laurent <laurent.orseau at gmail.com> wrote:
>> On Fri, Feb 5, 2010 at 15:40, Laurent <laurent.orseau at gmail.com> wrote:
>>> On Fri, Feb 5, 2010 at 15:12, Matthias Felleisen <matthias at ccs.neu.edu>
wrote:
>>>>
>>>> On Feb 5, 2010, at 8:29 AM, Todd O'Bryan wrote:
>>>>
>>>>> What do people use for a set data-type? If there isn't one built-in,
>>>>> we're going to use a hash-table with #t as all the values.
>>>>
>>>> Just a tease: how would you use hashtable to represent infinite sets?
>>>
>>> From the top of my head, though that does probably not fit to the
>>> definition of an infinite set:
>>>
>>> (define towards-infinity-and-beyond (make-hash))
>>> (hash-set! towards-infinity-and-beyond 'zero '())
>>> (hash-set! 'me towards-infinity-and-beyond)
>>