<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 2-Sep-10, at 3:54 PM, Tom Murphy wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi Everyone,<div><br></div><div>&nbsp;&nbsp; &nbsp; Is there a "From SQL"-type function that "restores" a range or list comprehension?</div><div><br></div><div>Example:</div><div>Let's say I want to keep track of which episodes of a TV show I've seen. I have an SQL table, in which is a record:</div> <div>&nbsp;&nbsp; id (INTEGER): 30</div><div>&nbsp;&nbsp; title (VARCHAR): "The Simpsons"</div><div>&nbsp;&nbsp; episodes_watched (Some data format): [1..4], [14], [18..21], [23..25]</div></blockquote><div><br></div><div>To model this relationally,&nbsp;<b>episodes_watched</b> cannot be some kind of composite value. You need two relations, for example:</div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">CREATE TABLE tv_show (</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Courier">        </font></span><font class="Apple-style-span" face="Courier">id INTEGER NOT NULL, -- etc</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Courier">        </font></span><font class="Apple-style-span" face="Courier">title VARCHAR(80),</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Courier">        </font></span><font class="Apple-style-span" face="Courier">PRIMARY KEY (id)</font></div><div><font class="Apple-style-span" face="Courier">);</font></div><div><font class="Apple-style-span" face="Courier">CREATE TABLE episodes_watched (</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Courier">        </font></span><font class="Apple-style-span" face="Courier">tv_show_id INTEGER NOT NULL,</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Courier">        </font></span><font class="Apple-style-span" face="Courier">episode_number INTEGER,</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Courier">        </font></span><font class="Apple-style-span" face="Courier">PRIMARY KEY (tv_show_id,&nbsp;episode_number)</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Courier">        </font></span><font class="Apple-style-span" face="Courier">-- and ideally a foreign key constraint</font></div><div><font class="Apple-style-span" face="Courier">);</font></div><div><br></div><div>Data:</div><div><br></div><div><b>tv_show</b> (30, "The Simpsons")</div><div><b>episodes_watched</b> (30,1), (30,2), (30,3), (30,4), (30,14), (30,18), (30,19), (30,20), (30,21), (30,23), (30,24), (30,25)</div><div><br></div><div>--Toby</div><div><br></div><br><blockquote type="cite"><div><br></div><div>Then, when I pull the record, in Haskell, the "Episodes Watched" is already one list:</div> <div>[1,2,3,4,14,18,19,21,23,24,25]</div><div><br></div><div>, or a series of lists that I can append together:</div><div>[1,2,3,4], [14], [18,19,20,21], [23,24,25]</div><div><br></div><div><br></div><div>Note in the example that I would like to be able to store multiple ranges within a single record.</div> <div><br></div><div><br></div><div>Thanks so much for any help!</div><div>Tom</div> _______________________________________________<br>Beginners mailing list<br><a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>http://www.haskell.org/mailman/listinfo/beginners<br></blockquote></div><br></body></html>