<div dir="ltr">Here's another idea (that I'm not sure is great, but worth thinking about).  Make the minimal thing have type Seq (rather than Sequence),  My only fear is that people would find it easier to type Seq than Sequence and hence use it.  If not that, then "run" or "series" would work for me. </div><br><div class="gmail_quote"><div dir="ltr">On Wed, Feb 3, 2016 at 3:13 PM Andrew P Black <<a href="mailto:black@cs.pdx.edu">black@cs.pdx.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br>On 3 Feb 2016, at 00:00 , James Noble <<a href="mailto:kjx@ecs.vuw.ac.nz" target="_blank">kjx@ecs.vuw.ac.nz</a>> wrote:<br><br><blockquote type="cite">I meant to ask explicitly,  should the “[ ]”’s interface be minimal (just iteration and say size) or maximal (a collection).<br></blockquote><br></div><div style="word-wrap:break-word"><div>You <i>did</i> ask this explicitly.  I think that you have asked three times now ;-)</div><div><br></div><div>For all the reasons that you quote, it should be minimal.  Didn't we agree on that?   I though that all that was at issue is the name.</div><div><br></div><div>I'm for the name "run", but if you don't like that, then I would choose "lineup".  I find "series"  acceptable too, but likely to cause more confusion.  For example, one might say in class "this method takes a series of arguments" and have students think that it takes a variable number of arguments, rather than one argument that is a collection.  This is less likely to happen with a term like "lineup" that is less likely to be mistaken for everyday speech.</div><div><br></div><div>In addition, because we do <i>not</i> want students to use these [ things ] for everyday programming, we should <i>not</i> choose a name that students may well associate with an everyday programming construct.  So an "oddball" name like <i>boundedIterable</i> or <i>conseqution</i> or <i>lineup</i> is actually preferable to something like list or sequence. </div><div><br></div><div>With regard to your suggestion, I would rather <i>not</i> repurpose “list” to be immutable, since the languages to which people are likely to move from Grace — Java, C++ & Python — use “list” for mutable structures.  The standard data structures course will probably teach “linked lists”, which are mutable.</div><div><br></div><div>When we chose <i>sequence,</i> <i>list, and set</i> a couple of years ago, we did this in the conscious knowledge that we didn't have a name for immutable sets.  One alternative that we considered then, which we <i>could</i> reconsider now, is to use <i>iList</i> and <i>mList</i> for the two kinds of list, and <i>iSet</i> and <i>mSet</i> for the two kinds of set.   <i>If</i> we think that we might want to make this change, this is a good time to do it, because existing code that uses, say, list.with(1, 2, 3, 5, 7) will need to be edited anyway.   On the whole, I think that I'm happy with sequence and list, but it sounds as though you may not be.</div></div><div style="word-wrap:break-word"><div><br></div><div><span style="white-space:pre-wrap">   </span>Andrew</div><div><br></div><div><br></div></div></blockquote></div>