09.08.2013 Views

Problem Set 1 - Computation Structures Group - MIT

Problem Set 1 - Computation Structures Group - MIT

Problem Set 1 - Computation Structures Group - MIT

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4 6.827 <strong>Problem</strong> <strong>Set</strong> 1<br />

Part a: Simple <strong>Set</strong>s (2 points)<br />

Define the Empty set (the set with no elements) and the set of integers (contains all elements).<br />

empty<strong>Set</strong> :: Int<strong>Set</strong><br />

empty<strong>Set</strong> x = ...<br />

allInts :: Int<strong>Set</strong><br />

allInts x = ...<br />

Part b: Intervals (3 points)<br />

Write the function:<br />

-- interval x y contains all the integers in [x,y]<br />

interval :: Int -> Int -> Int<strong>Set</strong><br />

interval lBound uBound = ...<br />

Part c: More Interesting <strong>Set</strong>s (5 points)<br />

Generate a set of squares squares, which contains exactly all square numbers.<br />

Part d: <strong>Set</strong> Operators (10 points)<br />

Now that you can generate some sets, you need to generate operators to combine sets.<br />

Write the following functions:<br />

-- Boolean Operators<br />

setIntersection :: Int<strong>Set</strong> -> Int<strong>Set</strong> -> Int<strong>Set</strong><br />

setUnion :: Int<strong>Set</strong> -> Int<strong>Set</strong> -> Int<strong>Set</strong><br />

setComplement :: Int<strong>Set</strong> -> Int<strong>Set</strong><br />

-- <strong>Set</strong> generation<br />

addTo<strong>Set</strong> :: Int -> Int<strong>Set</strong> -> Int<strong>Set</strong><br />

deleteFrom<strong>Set</strong> :: Int -> Int<strong>Set</strong> -> Int<strong>Set</strong><br />

Part e: Equality (5 points)<br />

How would we define the equality operator on Int<strong>Set</strong>s? Would we be able to do better if we had<br />

used a list of Ints instead of a function to represent our set? What would we have had to give up<br />

to do that?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!