<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-14126</id>
	<title>Nabble - Nice</title>
	<updated>2008-09-30T00:02:25Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/Nice-f14126.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-f14126.html" />
	<subtitle type="html">&lt;a href=&quot;http://nice.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice&lt;/a&gt;&amp;nbsp;is a new programming language. It extends the ideas behind object-orientation in order to better support modular programming and static type safety.</subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-19737134</id>
	<title>Training &amp; jobs</title>
	<published>2008-09-30T00:02:25Z</published>
	<updated>2008-09-30T00:02:25Z</updated>
	<author>
		<name>KiranGupta</name>
	</author>
	<content type="html">“Join us to make future”
&lt;br&gt;FOR OPT/F-1 STUDENTS
&lt;br&gt;FREE TRAINING 
&lt;br&gt;FOOD ACCOMODATION 
&lt;br&gt;H1B PROCESSING 	FOR L1/ L2/ H1/ H4/ EAD/ GC 
&lt;br&gt;EXCELLENT OPPRTUNITIES 
&lt;br&gt;TRAINING 
&lt;br&gt;PLACEMENT 
&lt;br&gt;Highly Competitive offers for New H1b Transfers
&lt;br&gt;About Us:
&lt;br&gt;V2 technology inc is serving NJ since 2005, for us our employees are of utmost importance. Our highly skilled and dedicated instructors train you explicitly in market-related technologies for today and tomorrow. We will work with you in developing marketing strategies and finding the assignments of your choice.
&lt;br&gt;We not only help you get a job but we build your long lasting careers!!! 
&lt;br&gt;What are we Looking for:
&lt;br&gt;Excellent communication skills. 
&lt;br&gt;Valid F1/ OPT/ CPT/ H1/ H4/ L1 or valid work status (EAD, GC). 
&lt;br&gt;Bachelors’ degree in CS/ IT or previous IT experience. 
&lt;br&gt;Preferably (not mandatory) Master's Degree in Computers/ Electronics or previous IT experience. 
&lt;br&gt;Willing to relocate anywhere in USA. 
&lt;br&gt;What’s The Deal: 
&lt;br&gt;H1-B sponsorship to F1/ OPT/ H4/ L1/ L2/ E3/ EAD 
&lt;br&gt;Transfer of H1 &amp; L1 visas. 
&lt;br&gt;Green Card sponsorship through PERM 
&lt;br&gt;Job focused professional training in 
&lt;br&gt;Java/ J2EE 
&lt;br&gt;.NET 
&lt;br&gt;Documentum 
&lt;br&gt;Share point 
&lt;br&gt;Oracle 
&lt;br&gt;Data Modeling 
&lt;br&gt;Relocation assistance- airfare, hotel accommodation, car rental etc 
&lt;br&gt;Guarantee lowest bench period. 
&lt;br&gt;Employee referral program. 
&lt;br&gt;Effective Resume writing help, Marketing and Placement. 
&lt;br&gt;Technical mock interviews. Preparation of In Person Interviews 
&lt;br&gt;100% Guaranteed placement 
&lt;br&gt;Get in Touch:
&lt;br&gt;Contact immediately to know more about the opportunities with us at:609-843-0312 
&lt;br&gt;or 		
&lt;br&gt;write mail at jobs@v2techinc.com
&lt;br&gt;Contact person : John
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Training---jobs-tp19737134p19737134.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-16728147</id>
	<title>Re: Bjarne Stroustrup: Is multiple dispatch a good thing? - Yes.</title>
	<published>2008-04-16T09:37:13Z</published>
	<updated>2008-04-16T09:37:13Z</updated>
	<author>
		<name>Isaac Gouy</name>
	</author>
	<content type="html">&lt;br&gt;--- &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=16728147&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;a400@...&lt;/a&gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Wed, 16 Apr 2008, Isaac Gouy wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;quot;Languages that support multiple dispatch at run time (like Dylan
&lt;br&gt;&amp;gt; &amp;gt; and CLOS) do better and languages (such as C++) that support it at
&lt;br&gt;&amp;gt; &amp;gt; compile time can sometimes help a bit.&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://msdn2.microsoft.com/en-us/magazine/cc500572.aspx&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://msdn2.microsoft.com/en-us/magazine/cc500572.aspx&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;quot;Open Multi-Methods for C++&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://research.att.com/~bs/multimethods.pdf&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://research.att.com/~bs/multimethods.pdf&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;quot;That work came too late for C++0x, though.&amp;quot;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; So we will have to wait another 5 years until C++ supports multiple 
&lt;br&gt;&amp;gt; dispatch. :-)
&lt;/div&gt;&lt;br&gt;&lt;br&gt;When Bjarne Stroustrup says multiple dispatch is a good thing, it
&lt;br&gt;creates another window of opportunity for multiple dispatch languages.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ____________________________________________________________________________________
&lt;br&gt;Be a better friend, newshound, and 
&lt;br&gt;know-it-all with Yahoo! Mobile. &amp;nbsp;Try it now. &amp;nbsp;&lt;a href=&quot;http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ&lt;/a&gt;&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
&lt;br&gt;Don't miss this year's exciting event. There's still time to save $100. 
&lt;br&gt;Use priority code J8TL2D2. 
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=16728147&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Bjarne-Stroustrup%3A-Is-multiple-dispatch-a-good-thing----Yes.-tp16707298p16728147.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-16715738</id>
	<title>Re: Bjarne Stroustrup: Is multiple dispatch a good thing? - Yes.</title>
	<published>2008-04-15T19:40:48Z</published>
	<updated>2008-04-15T19:40:48Z</updated>
	<author>
		<name>a400</name>
	</author>
	<content type="html">On Wed, 16 Apr 2008, Isaac Gouy wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;quot;Languages that support multiple dispatch at run time (like Dylan
&lt;br&gt;&amp;gt; and CLOS) do better and languages (such as C++) that support it at
&lt;br&gt;&amp;gt; compile time can sometimes help a bit.&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://msdn2.microsoft.com/en-us/magazine/cc500572.aspx&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://msdn2.microsoft.com/en-us/magazine/cc500572.aspx&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;quot;Open Multi-Methods for C++&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://research.att.com/~bs/multimethods.pdf&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://research.att.com/~bs/multimethods.pdf&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&amp;quot;That work came too late for C++0x, though.&amp;quot;
&lt;br&gt;&lt;br&gt;So we will have to wait another 5 years until C++ supports multiple 
&lt;br&gt;dispatch. :-)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Radu
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
&lt;br&gt;Don't miss this year's exciting event. There's still time to save $100. 
&lt;br&gt;Use priority code J8TL2D2. 
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=16715738&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Bjarne-Stroustrup%3A-Is-multiple-dispatch-a-good-thing----Yes.-tp16707298p16715738.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-16707298</id>
	<title>Bjarne Stroustrup: Is multiple dispatch a good thing? - Yes.</title>
	<published>2008-04-15T10:25:15Z</published>
	<updated>2008-04-15T10:25:15Z</updated>
	<author>
		<name>Isaac Gouy</name>
	</author>
	<content type="html">&amp;quot;Languages that support multiple dispatch at run time (like Dylan and
&lt;br&gt;CLOS) do better and languages (such as C++) that support it at compile
&lt;br&gt;time can sometimes help a bit.&amp;quot;
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://msdn2.microsoft.com/en-us/magazine/cc500572.aspx&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://msdn2.microsoft.com/en-us/magazine/cc500572.aspx&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;quot;Open Multi-Methods for C++&amp;quot;
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://research.att.com/~bs/multimethods.pdf&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://research.att.com/~bs/multimethods.pdf&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ____________________________________________________________________________________
&lt;br&gt;Be a better friend, newshound, and 
&lt;br&gt;know-it-all with Yahoo! Mobile. &amp;nbsp;Try it now. &amp;nbsp;&lt;a href=&quot;http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ&lt;/a&gt;&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
&lt;br&gt;Don't miss this year's exciting event. There's still time to save $100. 
&lt;br&gt;Use priority code J8TL2D2. 
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=16707298&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Bjarne-Stroustrup%3A-Is-multiple-dispatch-a-good-thing----Yes.-tp16707298p16707298.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-16364000</id>
	<title>iterator and tuple with forIterator</title>
	<published>2008-03-28T16:01:00Z</published>
	<updated>2008-03-28T16:01:00Z</updated>
	<author>
		<name>Dan Shryock</name>
	</author>
	<content type="html">As an experiment to become more familiar with nice, I decided to try
&lt;br&gt;to build a new forIterator method for maps that allows you to iterate
&lt;br&gt;over a tuple of key values. &amp;nbsp;The forIterator looks like the following,
&lt;br&gt;and works fine:
&lt;br&gt;&lt;br&gt;&amp;lt;K,V&amp;gt; Iterator&amp;lt;(K,V)&amp;gt; forIterator(Map&amp;lt;K,V&amp;gt; map){
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let entries = map.entrySet().iterator();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return (() =&amp;gt; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(entries.hasNext()){
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let entry = entries.next();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return (entry.getKey(),entry.getValue());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return stop();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }).iterator();
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;However to use the forIterator, I had to place a temporary variable as
&lt;br&gt;the item in the for statement, then pull the values out inside the
&lt;br&gt;loop.
&lt;br&gt;void main(String[] args){
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Map&amp;lt;String,String&amp;gt; mapdata = listToMap([
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;quot;test1&amp;quot;,&amp;quot;Bla1&amp;quot;),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;quot;test2&amp;quot;,&amp;quot;Bla2&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //This works
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for(entry :mapdata){
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (String key, String value) = entry;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; println(&amp;quot;Map Iteration Test:&amp;quot; key &amp;quot;=&amp;quot; value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Doesn't compile
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for((String key, String value):mapdata)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; println(&amp;quot;Map Iteration Test:&amp;quot; key &amp;quot;=&amp;quot; value);
&lt;br&gt;&lt;br&gt;}
&lt;br&gt;&lt;br&gt;Is this a bug, or is there another way to express this without the
&lt;br&gt;temp variable?
&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;&lt;br&gt;Dan
&lt;br&gt;&lt;br&gt;BTW: I haven't been able to get buy in to start using nice, but it is
&lt;br&gt;indeed a very nice language to play with
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;Check out the new SourceForge.net Marketplace.
&lt;br&gt;It's the best place to buy or sell services for
&lt;br&gt;just about anything Open Source.
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=16364000&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/iterator-and-tuple-with-forIterator-tp16364000p16364000.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15844687</id>
	<title>Nice syntax highligthing for SciTE</title>
	<published>2008-03-04T23:28:34Z</published>
	<updated>2008-03-04T23:28:34Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hi!
&lt;br&gt;&lt;br&gt;Subj is here: &lt;a href=&quot;http://files.rsdn.ru/46291/N4S.zip&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://files.rsdn.ru/46291/N4S.zip&lt;/a&gt;&lt;br&gt;Written by Klapaucius (&lt;a href=&quot;http://www.rsdn.ru/Users/46291.aspx&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.rsdn.ru/Users/46291.aspx&lt;/a&gt;)
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15844687&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15844687&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15844687&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-syntax-highligthing-for-SciTE-tp15844687p15844687.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15587093</id>
	<title>Re: Nice multiple dispatch details</title>
	<published>2008-02-20T03:16:37Z</published>
	<updated>2008-02-20T03:16:37Z</updated>
	<author>
		<name>a400</name>
	</author>
	<content type="html">Thanks Daniel, that makes it a lot clearer!
&lt;br&gt;&lt;br&gt;Now, in terms of dynamic (multiple or single) dispatch:
&lt;br&gt;The concept is that at compile time there is a known set of 
&lt;br&gt;alternative method bodies for each call site. At runtime, the most 
&lt;br&gt;appropriate body is chosen from this set, depending on the dynamic 
&lt;br&gt;types of the arguments involved in the call. In some languages, this 
&lt;br&gt;set is called a generic function. In Nice, it is a method 
&lt;br&gt;declaration that has a set of alternative method 
&lt;br&gt;implementations/bodies.
&lt;br&gt;&lt;br&gt;In some languages (at least CLOS, Dylan, Cecil), a method body 
&lt;br&gt;belongs to one generic function. In Nice it can belong to one or 
&lt;br&gt;multiple declarations. 
&lt;br&gt;&lt;br&gt;I hope I got that right, correct me if I'm wrong please ;-)
&lt;br&gt;&lt;br&gt;cheers,
&lt;br&gt;Radu
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Wed, 20 Feb 2008, Daniel Bonniot wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; For clarification: there are two concepts:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 1) method declaration, for instance:
&lt;br&gt;&amp;gt; &amp;lt;T&amp;gt; String toString(!T);
&lt;br&gt;&amp;gt; and
&lt;br&gt;&amp;gt; String toString(Vehicle);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It has a return type, possible a contract, no code.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 2) method implementation (or &amp;quot;method body&amp;quot; or &amp;quot;alternative&amp;quot;), for
&lt;br&gt;&amp;gt; instance toString(Car a) = &amp;quot;...&amp;quot;;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It has no return type nor contract, but some code.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; A method implementation belongs to one (or several, see below)
&lt;br&gt;&amp;gt; method declaration, for which it represents the code to execute in
&lt;br&gt;&amp;gt; a certain context.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; A method declaration m2 can override another method declaration
&lt;br&gt;&amp;gt; m1. This happens when m2 is more specific than m1. It can in
&lt;br&gt;&amp;gt; particular have a more specific return type. In this case, all
&lt;br&gt;&amp;gt; implementations of m2 will also be implementations of m1.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Feb 19, 2008 11:29 PM, &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15587093&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;a400@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; There's one thing that I am a bit confused about.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The code:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String toString(Vehicle a) = &amp;quot;a vehicle&amp;quot;;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Car a) = &amp;quot;a car&amp;quot;;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; gives me this warning:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; ~/ca/corpus/nice/test1/main.nice: line 23, column 8:
&lt;br&gt;&amp;gt; &amp;gt; warning: This method overrides &amp;lt;T&amp;gt; java.lang.String toString(!T)
&lt;br&gt;&amp;gt; &amp;gt; You should make this explicit, either by omitting the return
&lt;br&gt;&amp;gt; &amp;gt; type or by using the 'override' keyword.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; What does 'overrides' mean here? If a method overrides another,
&lt;br&gt;&amp;gt; &amp;gt; does it imply that it is part of the same method (dispatch)
&lt;br&gt;&amp;gt; &amp;gt; group? So, in this case, is toString(test1.Vehicle a) part of
&lt;br&gt;&amp;gt; &amp;gt; toString(!T)? Is toString(Car a) part of toString(!T)?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Additionally, the compiler seems to create a new method group
&lt;br&gt;&amp;gt; &amp;gt; toString(test1.Vehicle a) with the two alternatives:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Car a)
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Vehicle a)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;From this, it appears that a method body can be in multiple
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; method
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; groups. Is this correct?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; So for this call site:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(new Vehicle());
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; the method group would be:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Car a)
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Vehicle a)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; while for this call site:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(new java.lang.Object());
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; the method group would be:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(!T)
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Car a)
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Vehicle a)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Is this correct?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Yes, this is correct :-)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Daniel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ------------------------------------------------------------------
&lt;br&gt;&amp;gt;------- This SF.net email is sponsored by: Microsoft
&lt;br&gt;&amp;gt; Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Nice-info mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15587093&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;/div&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15587093&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-multiple-dispatch-details-tp15328737p15587093.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15584439</id>
	<title>Re: Nice multiple dispatch details</title>
	<published>2008-02-20T00:27:19Z</published>
	<updated>2008-02-20T00:27:19Z</updated>
	<author>
		<name>Daniel Bonniot-5</name>
	</author>
	<content type="html">For clarification: there are two concepts:
&lt;br&gt;&lt;br&gt;1) method declaration, for instance:
&lt;br&gt;&amp;lt;T&amp;gt; String toString(!T);
&lt;br&gt;and
&lt;br&gt;String toString(Vehicle);
&lt;br&gt;&lt;br&gt;It has a return type, possible a contract, no code.
&lt;br&gt;&lt;br&gt;2) method implementation (or &amp;quot;method body&amp;quot; or &amp;quot;alternative&amp;quot;), for instance
&lt;br&gt;toString(Car a) = &amp;quot;...&amp;quot;;
&lt;br&gt;&lt;br&gt;It has no return type nor contract, but some code.
&lt;br&gt;&lt;br&gt;A method implementation belongs to one (or several, see below) method
&lt;br&gt;declaration, for which it represents the code to execute in a certain
&lt;br&gt;context.
&lt;br&gt;&lt;br&gt;A method declaration m2 can override another method declaration m1.
&lt;br&gt;This happens when m2 is more specific than m1. It can in particular
&lt;br&gt;have a more specific return type. In this case, all implementations of
&lt;br&gt;m2 will also be implementations of m1.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Feb 19, 2008 11:29 PM, &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15584439&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;a400@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; There's one thing that I am a bit confused about.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The code:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String toString(Vehicle a) = &amp;quot;a vehicle&amp;quot;;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Car a) = &amp;quot;a car&amp;quot;;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; gives me this warning:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ~/ca/corpus/nice/test1/main.nice: line 23, column 8:
&lt;br&gt;&amp;gt; warning: This method overrides &amp;lt;T&amp;gt; java.lang.String toString(!T)
&lt;br&gt;&amp;gt; You should make this explicit, either by omitting the return type
&lt;br&gt;&amp;gt; or by using the 'override' keyword.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What does 'overrides' mean here? If a method overrides another, does
&lt;br&gt;&amp;gt; it imply that it is part of the same method (dispatch) group?
&lt;br&gt;&amp;gt; So, in this case, is toString(test1.Vehicle a) part of toString(!T)?
&lt;br&gt;&amp;gt; Is toString(Car a) part of toString(!T)?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Additionally, the compiler seems to create a new method group
&lt;br&gt;&amp;gt; toString(test1.Vehicle a) with the two alternatives:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Car a)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Vehicle a)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;From this, it appears that a method body can be in multiple method
&lt;br&gt;&amp;gt; groups. Is this correct?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So for this call site:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(new Vehicle());
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the method group would be:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Car a)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Vehicle a)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; while for this call site:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(new java.lang.Object());
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the method group would be:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(!T)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Car a)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Vehicle a)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Is this correct?
&lt;/div&gt;&lt;br&gt;Yes, this is correct :-)
&lt;br&gt;&lt;br&gt;Daniel
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15584439&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-multiple-dispatch-details-tp15328737p15584439.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15578046</id>
	<title>Re: Nice multiple dispatch details</title>
	<published>2008-02-19T14:29:29Z</published>
	<updated>2008-02-19T14:29:29Z</updated>
	<author>
		<name>a400</name>
	</author>
	<content type="html">There's one thing that I am a bit confused about.
&lt;br&gt;&lt;br&gt;The code:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String toString(Vehicle a) = &amp;quot;a vehicle&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Car a) = &amp;quot;a car&amp;quot;;
&lt;br&gt;&lt;br&gt;gives me this warning:
&lt;br&gt;&lt;br&gt;~/ca/corpus/nice/test1/main.nice: line 23, column 8:
&lt;br&gt;warning: This method overrides &amp;lt;T&amp;gt; java.lang.String toString(!T)
&lt;br&gt;You should make this explicit, either by omitting the return type
&lt;br&gt;or by using the 'override' keyword.
&lt;br&gt;&lt;br&gt;What does 'overrides' mean here? If a method overrides another, does 
&lt;br&gt;it imply that it is part of the same method (dispatch) group?
&lt;br&gt;So, in this case, is toString(test1.Vehicle a) part of toString(!T)? 
&lt;br&gt;Is toString(Car a) part of toString(!T)?
&lt;br&gt;&lt;br&gt;Additionally, the compiler seems to create a new method group 
&lt;br&gt;toString(test1.Vehicle a) with the two alternatives:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Car a)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Vehicle a)
&lt;br&gt;&lt;br&gt;&amp;gt;From this, it appears that a method body can be in multiple method 
&lt;br&gt;groups. Is this correct?
&lt;br&gt;&lt;br&gt;So for this call site:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(new Vehicle());
&lt;br&gt;&lt;br&gt;the method group would be:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Car a)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Vehicle a)
&lt;br&gt;&lt;br&gt;&lt;br&gt;while for this call site:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(new java.lang.Object());
&lt;br&gt;&lt;br&gt;the method group would be:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(!T)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Car a)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(test1.Vehicle a)
&lt;br&gt;&lt;br&gt;Is this correct?
&lt;br&gt;&lt;br&gt;Thanks :)
&lt;br&gt;Radu
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Mon, 18 Feb 2008, &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15578046&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;a400@...&lt;/a&gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Thanks Daniel for the clarification,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; after playing a little with the nice compiler I realized that the
&lt;br&gt;&amp;gt; programmer is actually in control of which method bodies belong to
&lt;br&gt;&amp;gt; a method group. In this example:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 	class Vehicle;
&lt;br&gt;&amp;gt; 	class Car extends Vehicle;
&lt;br&gt;&amp;gt; 	class Driver;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 	String toString(Vehicle a1) = (...);
&lt;br&gt;&amp;gt; 	String toString(Car a1) = (...);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the two toString() methods are not in the same method group (even
&lt;br&gt;&amp;gt; though they have the same name and number of arguments, and the
&lt;br&gt;&amp;gt; argument types are relate by inheritance) because they have
&lt;br&gt;&amp;gt; different declarations.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In contrast:
&lt;br&gt;&amp;gt; 	String toString(Vehicle a1) = (...);
&lt;br&gt;&amp;gt; 	toString(Car a1) = (...);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; are in the same method group.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Conversely,
&lt;br&gt;&amp;gt; 	String toString(Vehicle a1) = (...);
&lt;br&gt;&amp;gt; 	toString(Car a1) = (...);
&lt;br&gt;&amp;gt; 	toString(Driver a1) = (...);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; are not all 3 in the same method group (only the first 2).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; cheers,
&lt;br&gt;&amp;gt; Radu
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Wed, 13 Feb 2008, Daniel Bonniot wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Feb 7, 2008 8:09 AM, &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15578046&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;a400@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; I have a few questions regarding the multiple dispatch
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; mechanism in Nice and how it compares to other languages
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; (CLOS, Dylan, Cecil etc.)
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; When calling a method, Nice, like other multiple dispatch
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; languages, has to chose the most appropriate method body from
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; a set of available definitions (based on the dynamic type of
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; the supplied arguments, of course).
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; What are the criteria of grouping method definitions into a
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;quot;dispatch set&amp;quot;:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; - the method's name (I assume)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; yes
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; - the package where the method is defined?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; they don't have to be in the same package, as long as all
&lt;br&gt;&amp;gt; &amp;gt; packages are visible by being imported
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; - the number of arguments?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; yes
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; - static types of arguments?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; yes. Precisely, a method will override all other methods when
&lt;br&gt;&amp;gt; &amp;gt; both would be applicable for some same set of arguments, and the
&lt;br&gt;&amp;gt; &amp;gt; overriding methods has more specific types than the overriden
&lt;br&gt;&amp;gt; &amp;gt; one.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; In other words....
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; * Example1:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; package Car;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2)
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; package Motorcycle;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Motorcycle a1, Truck a2)
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; ...will these methods be the same dispatch set?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; No, given I assume something cannot be both a motorcycle and a
&lt;br&gt;&amp;gt; &amp;gt; truck.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; But if there was also a foo(Vehicule, Vehicule), then that one
&lt;br&gt;&amp;gt; &amp;gt; would be overridden by both of yours.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; * Example2:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2)
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2, Truck a3)
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; ...will these methods be in the same dispatch set?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; No.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; * Example3:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; abstract class Vehicle;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Car extends Vehicle;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; abstract class Person;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Driver extends Person;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Car a1) = (...);
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Driver a1) = (...);
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void main(String[] args) {
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let d = new Driver();
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(d);
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; ... will the 2 methods be in the same dispatch set?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Yes.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; I.e. when calling
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; toString() with a Driver as an argument, will both method
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; definitions be considered at runtime? Or is the compiler able
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; to disambiguate these two, eliminating the need for dynamic
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; dispatch (in this particular case)?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I believe the compiler will avoid the dynamic dispatch in this
&lt;br&gt;&amp;gt; &amp;gt; particular case, but that's an implementation detail (an
&lt;br&gt;&amp;gt; &amp;gt; optimization).
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; You are welcome to write such programs yourself to check the
&lt;br&gt;&amp;gt; &amp;gt; behaviour of the compiler.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Cheers,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Daniel
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; ----------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;-- ------- This SF.net email is sponsored by: Microsoft
&lt;br&gt;&amp;gt; &amp;gt; Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; &amp;gt; Nice-info mailing list
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15578046&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ------------------------------------------------------------------
&lt;br&gt;&amp;gt;------- This SF.net email is sponsored by: Microsoft
&lt;br&gt;&amp;gt; Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Nice-info mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15578046&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;/div&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15578046&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-multiple-dispatch-details-tp15328737p15578046.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15540872</id>
	<title>Re: Nice multiple dispatch details</title>
	<published>2008-02-17T23:47:17Z</published>
	<updated>2008-02-17T23:47:17Z</updated>
	<author>
		<name>a400</name>
	</author>
	<content type="html">Thanks Daniel for the clarification,
&lt;br&gt;&lt;br&gt;after playing a little with the nice compiler I realized that the 
&lt;br&gt;programmer is actually in control of which method bodies belong to a 
&lt;br&gt;method group. In this example:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Vehicle;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Car extends Vehicle;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Driver;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String toString(Vehicle a1) = (...);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String toString(Car a1) = (...);
&lt;br&gt;&lt;br&gt;the two toString() methods are not in the same method group (even 
&lt;br&gt;though they have the same name and number of arguments, and the 
&lt;br&gt;argument types are relate by inheritance) because they have 
&lt;br&gt;different declarations.
&lt;br&gt;&lt;br&gt;In contrast:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String toString(Vehicle a1) = (...);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Car a1) = (...);
&lt;br&gt;&lt;br&gt;are in the same method group.
&lt;br&gt;&lt;br&gt;Conversely,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String toString(Vehicle a1) = (...);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Car a1) = (...);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Driver a1) = (...);
&lt;br&gt;&lt;br&gt;are not all 3 in the same method group (only the first 2).
&lt;br&gt;&lt;br&gt;cheers,
&lt;br&gt;Radu
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Wed, 13 Feb 2008, Daniel Bonniot wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Feb 7, 2008 8:09 AM, &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15540872&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;a400@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I have a few questions regarding the multiple dispatch mechanism
&lt;br&gt;&amp;gt; &amp;gt; in Nice and how it compares to other languages (CLOS, Dylan,
&lt;br&gt;&amp;gt; &amp;gt; Cecil etc.)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; When calling a method, Nice, like other multiple dispatch
&lt;br&gt;&amp;gt; &amp;gt; languages, has to chose the most appropriate method body from a
&lt;br&gt;&amp;gt; &amp;gt; set of available definitions (based on the dynamic type of the
&lt;br&gt;&amp;gt; &amp;gt; supplied arguments, of course).
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; What are the criteria of grouping method definitions into a
&lt;br&gt;&amp;gt; &amp;gt; &amp;quot;dispatch set&amp;quot;:
&lt;br&gt;&amp;gt; &amp;gt; - the method's name (I assume)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; yes
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; - the package where the method is defined?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; they don't have to be in the same package, as long as all packages
&lt;br&gt;&amp;gt; are visible by being imported
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; - the number of arguments?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; yes
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; - static types of arguments?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; yes. Precisely, a method will override all other methods when both
&lt;br&gt;&amp;gt; would be applicable for some same set of arguments, and the
&lt;br&gt;&amp;gt; overriding methods has more specific types than the overriden one.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; In other words....
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; * Example1:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; package Car;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2)
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; package Motorcycle;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Motorcycle a1, Truck a2)
&lt;br&gt;&amp;gt; &amp;gt; ...will these methods be the same dispatch set?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; No, given I assume something cannot be both a motorcycle and a
&lt;br&gt;&amp;gt; truck.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; But if there was also a foo(Vehicule, Vehicule), then that one
&lt;br&gt;&amp;gt; would be overridden by both of yours.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; * Example2:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2)
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2, Truck a3)
&lt;br&gt;&amp;gt; &amp;gt; ...will these methods be in the same dispatch set?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; No.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; * Example3:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; abstract class Vehicle;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Car extends Vehicle;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; abstract class Person;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Driver extends Person;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Car a1) = (...);
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Driver a1) = (...);
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void main(String[] args) {
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let d = new Driver();
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(d);
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;gt; ... will the 2 methods be in the same dispatch set?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Yes.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I.e. when calling
&lt;br&gt;&amp;gt; &amp;gt; toString() with a Driver as an argument, will both method
&lt;br&gt;&amp;gt; &amp;gt; definitions be considered at runtime? Or is the compiler able to
&lt;br&gt;&amp;gt; &amp;gt; disambiguate these two, eliminating the need for dynamic
&lt;br&gt;&amp;gt; &amp;gt; dispatch (in this particular case)?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I believe the compiler will avoid the dynamic dispatch in this
&lt;br&gt;&amp;gt; particular case, but that's an implementation detail (an
&lt;br&gt;&amp;gt; optimization).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; You are welcome to write such programs yourself to check the
&lt;br&gt;&amp;gt; behaviour of the compiler.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Daniel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ------------------------------------------------------------------
&lt;br&gt;&amp;gt;------- This SF.net email is sponsored by: Microsoft
&lt;br&gt;&amp;gt; Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Nice-info mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15540872&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;/div&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15540872&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-multiple-dispatch-details-tp15328737p15540872.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15512135</id>
	<title>Re: Overriding == for strings</title>
	<published>2008-02-15T15:05:21Z</published>
	<updated>2008-02-15T15:05:21Z</updated>
	<author>
		<name>Dan Shryock</name>
	</author>
	<content type="html">Very cool, thanks.
&lt;br&gt;&lt;br&gt;On Fri, Feb 15, 2008 at 2:39 PM, Daniel Bonniot &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15512135&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bonniot@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Fri, Feb 15, 2008 at 8:52 PM, Dan Shryock &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15512135&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dan.shryock@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; As a simple test, I am trying to override the == operator for string
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp;comparison. &amp;nbsp;The problem that I am running into is that I see no way
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp;to do a reference test once you override the method. &amp;nbsp;In some
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp;languages I have seen an === operator that always does a strict
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp;reference test. &amp;nbsp;Is there any way to do something similar in nice?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;You can simply give a new name to the == operation:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;override boolean `==`(String s1, String s2) = s1.equals(s2);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;boolean same(Object o1, Object o2) = o1 == o2;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;void main(String[] args) {
&lt;br&gt;&amp;gt; &amp;nbsp; let s1 = &amp;quot;a&amp;quot;, s2 = &amp;quot;ba&amp;quot;.substring(1);
&lt;br&gt;&amp;gt; &amp;nbsp; println(s1 == s2); // true
&lt;br&gt;&amp;gt; &amp;nbsp; println(same(s1, s2)); // false
&lt;br&gt;&amp;gt; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;Daniel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;-------------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;nbsp;This SF.net email is sponsored by: Microsoft
&lt;br&gt;&amp;gt; &amp;nbsp;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;_______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp;Nice-info mailing list
&lt;br&gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15512135&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15512135&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Overriding-%3D%3D-for-strings-tp15508871p15512135.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15511669</id>
	<title>Re: Overriding == for strings</title>
	<published>2008-02-15T14:39:08Z</published>
	<updated>2008-02-15T14:39:08Z</updated>
	<author>
		<name>Daniel Bonniot-5</name>
	</author>
	<content type="html">On Fri, Feb 15, 2008 at 8:52 PM, Dan Shryock &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15511669&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dan.shryock@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; As a simple test, I am trying to override the == operator for string
&lt;br&gt;&amp;gt; &amp;nbsp;comparison. &amp;nbsp;The problem that I am running into is that I see no way
&lt;br&gt;&amp;gt; &amp;nbsp;to do a reference test once you override the method. &amp;nbsp;In some
&lt;br&gt;&amp;gt; &amp;nbsp;languages I have seen an === operator that always does a strict
&lt;br&gt;&amp;gt; &amp;nbsp;reference test. &amp;nbsp;Is there any way to do something similar in nice?
&lt;br&gt;&lt;br&gt;You can simply give a new name to the == operation:
&lt;br&gt;&lt;br&gt;override boolean `==`(String s1, String s2) = s1.equals(s2);
&lt;br&gt;&lt;br&gt;boolean same(Object o1, Object o2) = o1 == o2;
&lt;br&gt;&lt;br&gt;void main(String[] args) {
&lt;br&gt;&amp;nbsp; let s1 = &amp;quot;a&amp;quot;, s2 = &amp;quot;ba&amp;quot;.substring(1);
&lt;br&gt;&amp;nbsp; println(s1 == s2); // true
&lt;br&gt;&amp;nbsp; println(same(s1, s2)); // false
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;Daniel
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15511669&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Overriding-%3D%3D-for-strings-tp15508871p15511669.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15508871</id>
	<title>Overriding == for strings</title>
	<published>2008-02-15T11:52:47Z</published>
	<updated>2008-02-15T11:52:47Z</updated>
	<author>
		<name>Dan Shryock</name>
	</author>
	<content type="html">As a simple test, I am trying to override the == operator for string
&lt;br&gt;comparison. &amp;nbsp;The problem that I am running into is that I see no way
&lt;br&gt;to do a reference test once you override the method. &amp;nbsp;In some
&lt;br&gt;languages I have seen an === operator that always does a strict
&lt;br&gt;reference test. &amp;nbsp;Is there any way to do something similar in nice?
&lt;br&gt;&lt;br&gt;Dan
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15508871&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Overriding-%3D%3D-for-strings-tp15508871p15508871.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15504839</id>
	<title>Re: Nice syntax highlighting for ViM</title>
	<published>2008-02-15T08:26:08Z</published>
	<updated>2008-02-15T08:26:08Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">On Thu, 07 Feb 2008 19:58:51 +0300, Yauheni Akhotnikau &amp;nbsp;
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15504839&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; 	Hi!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I've created the first version of syntax highlighting and file type
&lt;br&gt;&amp;gt; dectection for ViM editor. It could be found at:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2144&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.vim.org/scripts/script.php?script_id=2144&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;Version 0.2 with support for public-read/private-write and &amp;nbsp;
&lt;br&gt;try-catch-finally is available (at the same URL).
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15504839&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15504839&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15504839&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-syntax-highlighting-for-ViM-tp15338235p15504839.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15450235</id>
	<title>Re: Nice's DbC vs Eiffel DbC</title>
	<published>2008-02-12T22:08:17Z</published>
	<updated>2008-02-12T22:08:17Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">Hi!
&lt;br&gt;&lt;br&gt;On Tue, 12 Feb 2008 19:12:20 +0300, Daniel Bonniot &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15450235&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bonniot@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I can give full prototype for Derived#test (e.g. public void test(…)). &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; In
&lt;br&gt;&amp;gt;&amp;gt; such case compiler warns me:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; D:\home\eao197\tmp\nice\contracts\pre\main.nice: line 12, column 29:
&lt;br&gt;&amp;gt;&amp;gt; warning: This method overrides nice.lang.void test(pre.Base
&lt;br&gt;&amp;gt;&amp;gt; this,java.lang.String value)requires `&amp;gt;`(value.length(), 8):&amp;quot;value must &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; be
&lt;br&gt;&amp;gt;&amp;gt; at least 8 symbols&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt; You should make this explicit, either by omitting the return type
&lt;br&gt;&amp;gt;&amp;gt; or by using the 'override' keyword
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As the message says, you could get rid of the warning by adding the
&lt;br&gt;&amp;gt; override keyword.
&lt;/div&gt;&lt;br&gt;It was my mistake: I wrote 'override' before 'public' and compiler &amp;nbsp;
&lt;br&gt;complained about syntax error. Then I looked into parser.jj and learnt &amp;nbsp;
&lt;br&gt;that 'override' should be used after visibility indicator.
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; I think, compiler should allow precondition specification in overridden
&lt;br&gt;&amp;gt;&amp;gt; methods.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It does, using this second form.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regarding execution of pre and post conditions in overriden methods, I
&lt;br&gt;&amp;gt; don't have the details in memory at the moment, but you are welcome to
&lt;br&gt;&amp;gt; test it.
&lt;br&gt;&lt;br&gt;I wrote a small program to test contracts:
&lt;br&gt;&lt;br&gt;enum ConditionType( String value )
&lt;br&gt;&amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;precondition( &amp;quot;PRE&amp;quot; )
&lt;br&gt;&amp;nbsp; &amp;nbsp;, postcondition( &amp;quot;POST&amp;quot; )
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;boolean lengthCheck(
&lt;br&gt;&amp;nbsp; &amp;nbsp;String value,
&lt;br&gt;&amp;nbsp; &amp;nbsp;ConditionType preOrPost,
&lt;br&gt;&amp;nbsp; &amp;nbsp;int minimalLength )
&lt;br&gt;&amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;println( &amp;quot;&amp;lt;&amp;quot; preOrPost &amp;quot;# value: &amp;quot; value &amp;quot;, minimalLength: &amp;quot; &amp;nbsp;
&lt;br&gt;minimalLength &amp;quot;&amp;gt;&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return value.length &amp;gt; minimalLength;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;class Base
&lt;br&gt;&amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;String str = &amp;quot;&amp;quot;;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test( String value )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requires value.lengthCheck( precondition, 8 ) : &amp;quot;base precondition: &amp;nbsp;
&lt;br&gt;strong&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ensures this.str.lengthCheck( postcondition, 8 ) : &amp;quot;base &amp;nbsp;
&lt;br&gt;postcondition: strong&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;println( &amp;quot;Base#test: value: &amp;quot; value );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str = value;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;class Derived extends Base
&lt;br&gt;&amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public override void test( String value )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requires value.lengthCheck( precondition, 0 ) : &amp;quot;derived &amp;nbsp;
&lt;br&gt;precondition: weak&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ensures this.str.lengthCheck( postcondition, 10 ) : &amp;quot;derived &amp;nbsp;
&lt;br&gt;postconditon: stronger&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;println( &amp;quot;Derived#test: value: &amp;quot; value );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str = value + value;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;void main( String[] args )
&lt;br&gt;&amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;let b = new Derived();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;b.test( &amp;quot;hello!&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;// vim:ts=2:sts=2:sw=2:expandtab
&lt;br&gt;&lt;br&gt;and ran it:
&lt;br&gt;&lt;br&gt;java -ea -jar pre_and_post.jar
&lt;br&gt;&amp;lt;precondition# value: hello!, minimalLength: 0&amp;gt;
&lt;br&gt;Derived#test: value: hello!
&lt;br&gt;&amp;lt;postcondition# value: hello!hello!, minimalLength: 10&amp;gt;
&lt;br&gt;&lt;br&gt;You can see that there aren't calls to Base's pre/postconditions. Expected &amp;nbsp;
&lt;br&gt;behaviour for this example is:
&lt;br&gt;&lt;br&gt;java -ea -jar pre_and_post.jar
&lt;br&gt;&amp;lt;precondition# value: hello!, minimalLength: 8&amp;gt;
&lt;br&gt;&amp;lt;precondition# value: hello!, minimalLength: 0&amp;gt;
&lt;br&gt;Derived#test: value: hello!
&lt;br&gt;&amp;lt;postcondition# value: hello!hello!, minimalLength: 8&amp;gt;
&lt;br&gt;&amp;lt;postcondition# value: hello!hello!, minimalLength: 10&amp;gt;
&lt;br&gt;&lt;br&gt;In the case when b.test is called with argument '0123456789' the expected &amp;nbsp;
&lt;br&gt;behaviour is:
&lt;br&gt;&lt;br&gt;java -ea -jar pre_and_post.jar
&lt;br&gt;&amp;lt;precondition# value: 0123456789, minimalLength: 8&amp;gt;
&lt;br&gt;Derived#test: value: hello!
&lt;br&gt;&amp;lt;postcondition# value: 0123456789, minimalLength: 8&amp;gt;
&lt;br&gt;&amp;lt;postcondition# value: 0123456789, minimalLength: 10&amp;gt;
&lt;br&gt;&lt;br&gt;In that case precondition in Derived#test doesn't checked because Base's &amp;nbsp;
&lt;br&gt;precondition is satisfied.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15450235&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15450235&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15450235&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice%27s-DbC-vs-Eiffel-DbC-tp15373212p15450235.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15437992</id>
	<title>Re: Nice multiple dispatch details</title>
	<published>2008-02-12T08:27:04Z</published>
	<updated>2008-02-12T08:27:04Z</updated>
	<author>
		<name>Daniel Bonniot-5</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Feb 7, 2008 8:09 AM, &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15437992&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;a400@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have a few questions regarding the multiple dispatch mechanism in
&lt;br&gt;&amp;gt; Nice and how it compares to other languages (CLOS, Dylan, Cecil
&lt;br&gt;&amp;gt; etc.)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When calling a method, Nice, like other multiple dispatch languages,
&lt;br&gt;&amp;gt; has to chose the most appropriate method body from a set of
&lt;br&gt;&amp;gt; available definitions (based on the dynamic type of the supplied
&lt;br&gt;&amp;gt; arguments, of course).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What are the criteria of grouping method definitions into a &amp;quot;dispatch
&lt;br&gt;&amp;gt; set&amp;quot;:
&lt;br&gt;&amp;gt; - the method's name (I assume)
&lt;/div&gt;yes
&lt;br&gt;&lt;br&gt;&amp;gt; - the package where the method is defined?
&lt;br&gt;they don't have to be in the same package, as long as all packages are
&lt;br&gt;visible by being imported
&lt;br&gt;&lt;br&gt;&amp;gt; - the number of arguments?
&lt;br&gt;yes
&lt;br&gt;&lt;br&gt;&amp;gt; - static types of arguments?
&lt;br&gt;yes. Precisely, a method will override all other methods when both
&lt;br&gt;would be applicable for some same set of arguments, and the overriding
&lt;br&gt;methods has more specific types than the overriden one.
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In other words....
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; * Example1:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; package Car;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; package Motorcycle;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Motorcycle a1, Truck a2)
&lt;br&gt;&amp;gt; ...will these methods be the same dispatch set?
&lt;br&gt;&lt;br&gt;No, given I assume something cannot be both a motorcycle and a truck.
&lt;br&gt;&lt;br&gt;But if there was also a foo(Vehicule, Vehicule), then that one would
&lt;br&gt;be overridden by both of yours.
&lt;br&gt;&lt;br&gt;&amp;gt; * Example2:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2, Truck a3)
&lt;br&gt;&amp;gt; ...will these methods be in the same dispatch set?
&lt;br&gt;&lt;br&gt;No.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; * Example3:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; abstract class Vehicle;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Car extends Vehicle;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; abstract class Person;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Driver extends Person;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Car a1) = (...);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Driver a1) = (...);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void main(String[] args) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let d = new Driver();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(d);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; ... will the 2 methods be in the same dispatch set?
&lt;/div&gt;Yes.
&lt;br&gt;&lt;br&gt;&amp;gt; I.e. when calling
&lt;br&gt;&amp;gt; toString() with a Driver as an argument, will both method
&lt;br&gt;&amp;gt; definitions be considered at runtime? Or is the compiler able to
&lt;br&gt;&amp;gt; disambiguate these two, eliminating the need for dynamic dispatch
&lt;br&gt;&amp;gt; (in this particular case)?
&lt;br&gt;&lt;br&gt;I believe the compiler will avoid the dynamic dispatch in this
&lt;br&gt;particular case, but that's an implementation detail (an
&lt;br&gt;optimization).
&lt;br&gt;&lt;br&gt;You are welcome to write such programs yourself to check the behaviour
&lt;br&gt;of the compiler.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;&lt;br&gt;Daniel
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15437992&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-multiple-dispatch-details-tp15328737p15437992.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15436577</id>
	<title>Re: Nice's DbC vs Eiffel DbC</title>
	<published>2008-02-12T08:12:20Z</published>
	<updated>2008-02-12T08:12:20Z</updated>
	<author>
		<name>Daniel Bonniot-5</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;&amp;gt; I can give full prototype for Derived#test (e.g. public void test(…)). In
&lt;br&gt;&amp;gt; such case compiler warns me:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; D:\home\eao197\tmp\nice\contracts\pre\main.nice: line 12, column 29:
&lt;br&gt;&amp;gt; warning: This method overrides nice.lang.void test(pre.Base
&lt;br&gt;&amp;gt; this,java.lang.String value)requires `&amp;gt;`(value.length(), 8):&amp;quot;value must be
&lt;br&gt;&amp;gt; at least 8 symbols&amp;quot;,
&lt;br&gt;&amp;gt; You should make this explicit, either by omitting the return type
&lt;br&gt;&amp;gt; or by using the 'override' keyword
&lt;br&gt;&lt;br&gt;As the message says, you could get rid of the warning by adding the
&lt;br&gt;override keyword.
&lt;br&gt;&lt;br&gt;&amp;gt; I think, compiler should allow precondition specification in overridden
&lt;br&gt;&amp;gt; methods.
&lt;br&gt;&lt;br&gt;It does, using this second form.
&lt;br&gt;&lt;br&gt;Regarding execution of pre and post conditions in overriden methods, I
&lt;br&gt;don't have the details in memory at the moment, but you are welcome to
&lt;br&gt;test it.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;&lt;br&gt;Daniel
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15436577&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice%27s-DbC-vs-Eiffel-DbC-tp15373212p15436577.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15373212</id>
	<title>Nice's DbC vs Eiffel DbC</title>
	<published>2008-02-09T08:07:19Z</published>
	<updated>2008-02-09T08:07:19Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">Hi!
&lt;br&gt;&lt;br&gt;Nice has the special syntax for overriding methods in derived classes:
&lt;br&gt;&lt;br&gt;class Base { public void f() { … &amp;nbsp;} }
&lt;br&gt;class Derived extends Base { f() { … } }
&lt;br&gt;&lt;br&gt;But, if a method defines precondition then there isn’t a possibility to &amp;nbsp;
&lt;br&gt;override such method – compiler informs about syntax error:
&lt;br&gt;&lt;br&gt;class Base
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void test( String value )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; requires value.length &amp;gt; 8 : &amp;quot;value must be at least 8 symbols&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; println( &amp;quot;Base#test: value: &amp;quot; value );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;class Derived extends Base
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; test( value )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; requires value.length &amp;gt; 0 : &amp;quot;value cannot be empty&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; println( &amp;quot;Derived#test: value: &amp;quot; value );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;void main( String[] args )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let b = new Derived();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; b.test( &amp;quot;hello!&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;D:\home\eao197\tmp\nice\contracts&amp;gt;nicec --jar pre.jar pre
&lt;br&gt;nice.lang: parsing
&lt;br&gt;pre: parsing
&lt;br&gt;&lt;br&gt;D:\home\eao197\tmp\nice\contracts\pre\main.nice: line 13, column 25:
&lt;br&gt;Encountered &amp;quot;requires&amp;quot;.
&lt;br&gt;Was expecting one of:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;{&amp;quot; ...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;=&amp;quot; ...
&lt;br&gt;&lt;br&gt;compilation failed with 1 error
&lt;br&gt;&lt;br&gt;I can give full prototype for Derived#test (e.g. public void test(…)). In &amp;nbsp;
&lt;br&gt;such case compiler warns me:
&lt;br&gt;&lt;br&gt;D:\home\eao197\tmp\nice\contracts\pre\main.nice: line 12, column 29:
&lt;br&gt;warning: This method overrides nice.lang.void test(pre.Base &amp;nbsp;
&lt;br&gt;this,java.lang.String value)requires `&amp;gt;`(value.length(), 8):&amp;quot;value must be &amp;nbsp;
&lt;br&gt;at least 8 symbols&amp;quot;,
&lt;br&gt;You should make this explicit, either by omitting the return type
&lt;br&gt;or by using the 'override' keyword
&lt;br&gt;pre: typechecking
&lt;br&gt;pre: generating code
&lt;br&gt;pre: linking
&lt;br&gt;pre: writing in archive
&lt;br&gt;nice.lang: writing in archive
&lt;br&gt;compilation completed with 1 warning
&lt;br&gt;&lt;br&gt;I think, compiler should allow precondition specification in overridden &amp;nbsp;
&lt;br&gt;methods.
&lt;br&gt;&lt;br&gt;The same situation is for post-conditions too.
&lt;br&gt;&lt;br&gt;Eiffel’s DesignByContract implementation allows specification of more &amp;nbsp;
&lt;br&gt;detailed pre- and post-condition in derived classes. But pre- and &amp;nbsp;
&lt;br&gt;post-conditions in overridden methods work as described bellow:
&lt;br&gt;- base class’s pre-conditions are checked first. Only if they fail &amp;nbsp;
&lt;br&gt;pre-condition from derived class are checked. It follows convention that &amp;nbsp;
&lt;br&gt;derived class could relax demands for class users: e.g. user could break &amp;nbsp;
&lt;br&gt;conditions for base class, but satisfy conditions for derived class. But &amp;nbsp;
&lt;br&gt;if user satisfies conditions for base class conditions for derived class &amp;nbsp;
&lt;br&gt;do not matter;
&lt;br&gt;- all post-conditions are checked after method returns. It follows &amp;nbsp;
&lt;br&gt;convention that derived class cannot relax its own obligations, but could &amp;nbsp;
&lt;br&gt;make it more strict: e.g. method should guaranteed base class obligations &amp;nbsp;
&lt;br&gt;(base class’s post-conditions passed) and can provide addition guaranties &amp;nbsp;
&lt;br&gt;(its own post-conditions passed).
&lt;br&gt;&lt;br&gt;I think that if such behaviour would be implemented in Nice it will make &amp;nbsp;
&lt;br&gt;Nice DbC more useful.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15373212&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15373212&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15373212&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice%27s-DbC-vs-Eiffel-DbC-tp15373212p15373212.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15338235</id>
	<title>Nice syntax highlighting for ViM</title>
	<published>2008-02-07T08:58:51Z</published>
	<updated>2008-02-07T08:58:51Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hi!
&lt;br&gt;&lt;br&gt;I've created the first version of syntax highlighting and file type &amp;nbsp;
&lt;br&gt;dectection for ViM editor. It could be found at: &amp;nbsp;
&lt;br&gt;&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2144&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.vim.org/scripts/script.php?script_id=2144&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15338235&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15338235&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15338235&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-syntax-highlighting-for-ViM-tp15338235p15338235.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15328737</id>
	<title>Nice multiple dispatch details</title>
	<published>2008-02-06T23:09:21Z</published>
	<updated>2008-02-06T23:09:21Z</updated>
	<author>
		<name>a400</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I have a few questions regarding the multiple dispatch mechanism in 
&lt;br&gt;Nice and how it compares to other languages (CLOS, Dylan, Cecil 
&lt;br&gt;etc.)
&lt;br&gt;&lt;br&gt;When calling a method, Nice, like other multiple dispatch languages, 
&lt;br&gt;has to chose the most appropriate method body from a set of 
&lt;br&gt;available definitions (based on the dynamic type of the supplied 
&lt;br&gt;arguments, of course).
&lt;br&gt;&lt;br&gt;What are the criteria of grouping method definitions into a &amp;quot;dispatch 
&lt;br&gt;set&amp;quot;:
&lt;br&gt;- the method's name (I assume)
&lt;br&gt;- the package where the method is defined?
&lt;br&gt;- the number of arguments?
&lt;br&gt;- static types of arguments?
&lt;br&gt;&lt;br&gt;In other words....
&lt;br&gt;&lt;br&gt;* Example1:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; package Car;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; package Motorcycle;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Motorcycle a1, Truck a2)
&lt;br&gt;...will these methods be the same dispatch set?
&lt;br&gt;&lt;br&gt;* Example2:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(Car a1, Motorcycle a2, Truck a3)
&lt;br&gt;...will these methods be in the same dispatch set?
&lt;br&gt;&lt;br&gt;* Example3:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; abstract class Vehicle;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Car extends Vehicle;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; abstract class Person;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class Driver extends Person;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Car a1) = (...);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(Driver a1) = (...);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void main(String[] args) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let d = new Driver();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; toString(d);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;... will the 2 methods be in the same dispatch set? I.e. when calling 
&lt;br&gt;toString() with a Driver as an argument, will both method 
&lt;br&gt;definitions be considered at runtime? Or is the compiler able to 
&lt;br&gt;disambiguate these two, eliminating the need for dynamic dispatch 
&lt;br&gt;(in this particular case)?
&lt;br&gt;&lt;br&gt;...Thanks a lot!
&lt;br&gt;Radu.
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15328737&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Nice-multiple-dispatch-details-tp15328737p15328737.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15252743</id>
	<title>My first real-world Nice experience: impressions and proposals</title>
	<published>2008-02-03T03:57:26Z</published>
	<updated>2008-02-03T03:57:26Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">Hi!
&lt;br&gt;&lt;br&gt;I’ve done my first Nice program which performs real-world task. It is a &amp;nbsp;
&lt;br&gt;quick and dirty program written for solving one of unexpected problem in &amp;nbsp;
&lt;br&gt;my work. The program reads log of SMPP data exchanges from the standard &amp;nbsp;
&lt;br&gt;input, searches log records for SMS exchanges, analyzes SMS bodies and &amp;nbsp;
&lt;br&gt;detects bad message bodies. I implemented the same task some time ago in D &amp;nbsp;
&lt;br&gt;1.0 (with Tango library) and Eiffel (with EiffelStudio 6.0). So it is &amp;nbsp;
&lt;br&gt;interesting to compare solutions on different languages. My Nice &amp;nbsp;
&lt;br&gt;implementation could be found here: &amp;nbsp;
&lt;br&gt;&lt;a href=&quot;http://eao197.narod.ru/better_language/test_tasks/decode_7bit_bodies/decode_7bit_bodies.nice.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://eao197.narod.ru/better_language/test_tasks/decode_7bit_bodies/decode_7bit_bodies.nice.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Here I want to tell about some my impressions and make some proposals for &amp;nbsp;
&lt;br&gt;Nice language and its standard library.
&lt;br&gt;&lt;br&gt;First of all I want to express my admiration about Daniel Bonniot and &amp;nbsp;
&lt;br&gt;others Nice’s contributor’s work – you’ve made very attractive and usable &amp;nbsp;
&lt;br&gt;language! Thanks for your efforts!
&lt;br&gt;&lt;br&gt;My Nice solution is very similar to D’s one. These languages propose &amp;nbsp;
&lt;br&gt;similar set of features for user. D language is more actively developed &amp;nbsp;
&lt;br&gt;now and has bigger community than Nice. However Nice is more attractive &amp;nbsp;
&lt;br&gt;for me because it offers some features which I miss in D (for example, &amp;nbsp;
&lt;br&gt;option types, multi methods) and provides access to large set of Java &amp;nbsp;
&lt;br&gt;libraries. So I can say that Nice is more attractive language for every &amp;nbsp;
&lt;br&gt;day programming for me than D.
&lt;br&gt;&lt;br&gt;However there are some small drawbacks which I’ve met during development.
&lt;br&gt;&lt;br&gt;= Drawbacks =
&lt;br&gt;&lt;br&gt;== Nice compiler’s error reporting ==
&lt;br&gt;&lt;br&gt;At first it is error reporting of the Nice compiler. I use VIM editor and &amp;nbsp;
&lt;br&gt;run compilation from it. But, unfortunately VIM doesn’t understand format &amp;nbsp;
&lt;br&gt;of Nice compiler error messages even with ‘--editor‘ argument. So I think &amp;nbsp;
&lt;br&gt;it is good to have yet another format of such messages in the form:
&lt;br&gt;&lt;br&gt;&amp;lt;file&amp;gt;:&amp;lt;line&amp;gt;:&amp;lt;column&amp;gt;: &amp;lt;error description&amp;gt;
&lt;br&gt;&lt;br&gt;For example:
&lt;br&gt;&lt;br&gt;test/main.nice:1:1: undefined symbol X
&lt;br&gt;&lt;br&gt;Such format is already supported by several languages/compilers/tools &amp;nbsp;
&lt;br&gt;(e.g. C/C++, D, Ruby) and because of that many editors already have &amp;nbsp;
&lt;br&gt;support of that format.
&lt;br&gt;And Nice compiler shouldn’t tell anything except errors/warning in this &amp;nbsp;
&lt;br&gt;mode, i.e. no errors/warnings – no output.
&lt;br&gt;&lt;br&gt;== An absence of switch statement ==
&lt;br&gt;&lt;br&gt;The next is an absence of switch statement in the language. I know that &amp;nbsp;
&lt;br&gt;value dispatch mechanism allows write code which illuminates need of &amp;nbsp;
&lt;br&gt;switch. But sometimes switch requires much less coding, than using &amp;nbsp;
&lt;br&gt;overloaded methods. For example I needed to parse escape sequences in a &amp;nbsp;
&lt;br&gt;string. With switch such operation requires simple and obvious switch:
&lt;br&gt;&lt;br&gt;if( ‘\\’ == c )
&lt;br&gt;&amp;nbsp; &amp;nbsp;switch( line[ i + 1 ] ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;case ‘r’ : // ‘\r’ processing
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;case ‘t’ : // ‘\t’ processing
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;…
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;case ‘x’: // ‘\xXX’ processing.
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;But without switch I need to write some top-level overloaded methods for &amp;nbsp;
&lt;br&gt;each kind of escape sequence:
&lt;br&gt;&lt;br&gt;SomeRetType onChar(current_char, line, index) { … }
&lt;br&gt;onChar( ‘r’, line, index) { … }
&lt;br&gt;onChar( ‘t’, line, index) { … }
&lt;br&gt;…
&lt;br&gt;onChar( ‘x’, line, index) { … }
&lt;br&gt;…
&lt;br&gt;if( ‘\\’ == c )
&lt;br&gt;&amp;nbsp; &amp;nbsp;… = onChar( line[i + 1], line, i+1);
&lt;br&gt;&lt;br&gt;or write sequence of if-else-if statements:
&lt;br&gt;&lt;br&gt;if( ‘\\’ == c ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp;let next = line[i+1];
&lt;br&gt;&amp;nbsp; &amp;nbsp;if( ‘r’ == next ) …
&lt;br&gt;&amp;nbsp; &amp;nbsp;else if( ‘t’ == next ) …
&lt;br&gt;…
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;I think that support of value dispatch for local functions could help &amp;nbsp;
&lt;br&gt;there, because if allows to write less code then in the case of top-level &amp;nbsp;
&lt;br&gt;overloaded methods:
&lt;br&gt;&lt;br&gt;if( ‘\\’ == c ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp;void onChar( char ch ) { … }
&lt;br&gt;&amp;nbsp; &amp;nbsp;onChar( ‘r’ ) { … }
&lt;br&gt;&amp;nbsp; &amp;nbsp;onChar( ‘t’ ) { … }
&lt;br&gt;&amp;nbsp; &amp;nbsp;…
&lt;br&gt;&amp;nbsp; &amp;nbsp;onChar( line[i+1] );
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;== Error reporting in getopt library ==
&lt;br&gt;&lt;br&gt;The next is a error reporting in nice.getopt library. When &amp;nbsp;
&lt;br&gt;nice.getopt.parse finds unknown option it prints error messages on the &amp;nbsp;
&lt;br&gt;standard error stream and continues argument parsing. But such approach &amp;nbsp;
&lt;br&gt;not always desirable. I think it is necessary to have mode in which &amp;nbsp;
&lt;br&gt;nice.getopt.parse raises exception on unknown option.
&lt;br&gt;&lt;br&gt;== No source file name/line number in the exception stack trace ==
&lt;br&gt;&lt;br&gt;I use Nice 0.9.13 under Windows and on exception I have that:
&lt;br&gt;&lt;br&gt;java.lang.ArrayIndexOutOfBoundsException: 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at t1.fun.main(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at t1.dispatch.main(Unknown Source)
&lt;br&gt;&lt;br&gt;for the program:
&lt;br&gt;&lt;br&gt;void main( String[] args )
&lt;br&gt;&amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;println( args[ args.length ] );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;catch( Exception x )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x.printStackTrace();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;May be it is a bug?
&lt;br&gt;&lt;br&gt;= Some proposals =
&lt;br&gt;&lt;br&gt;== A kind of Ruby/SmallTalk’s code blocks in Nice ==
&lt;br&gt;&lt;br&gt;Nice already has syntax sugar for methods with ()-&amp;gt;void as last argument:
&lt;br&gt;&lt;br&gt;void f( ()-&amp;gt; void action ) { …; action(); … }
&lt;br&gt;f() { bla-bla-bla }
&lt;br&gt;&lt;br&gt;And may be Nice could support such sugar for other types of lambdas. For &amp;nbsp;
&lt;br&gt;example:
&lt;br&gt;&lt;br&gt;void g( (A, B, C)-&amp;gt; void action ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp;…;
&lt;br&gt;&amp;nbsp; &amp;nbsp;action( p1, p2, p2 );
&lt;br&gt;&amp;nbsp; &amp;nbsp;…
&lt;br&gt;}
&lt;br&gt;g() { |a, b, c|
&lt;br&gt;&amp;nbsp; &amp;nbsp;…
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;where a, b and c will have types A, B and C.
&lt;br&gt;It could allow writing less code. For example, I created helper function
&lt;br&gt;&lt;br&gt;String formatHelper( PrintStream =&amp;gt; void printAction ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp;… let ps = new PrintStream( … );…
&lt;br&gt;&amp;nbsp; &amp;nbsp;printAction( ps );
&lt;br&gt;&amp;nbsp; &amp;nbsp;… return …
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;which was used like this:
&lt;br&gt;&lt;br&gt;formatHelper( PrintStream printer =&amp;gt; { … some actions … } );
&lt;br&gt;&lt;br&gt;Repeating “PrintStream printer =&amp;gt;” on every formatHelper invocation was a &amp;nbsp;
&lt;br&gt;boring task. So the form:
&lt;br&gt;&lt;br&gt;formatHelper() { |printer| …some actions…}
&lt;br&gt;&lt;br&gt;looks more attractive.
&lt;br&gt;&lt;br&gt;== Ranges in the form [low,high) ==
&lt;br&gt;&lt;br&gt;AFAIK, Nice provides Range only in the form [low, high] (each limit &amp;nbsp;
&lt;br&gt;included). Because of that sometimes I need to write:
&lt;br&gt;&lt;br&gt;for( i : 0..(array.length-1) ) …
&lt;br&gt;&lt;br&gt;I think it would be useful if there would be Ranges in the form [low, &amp;nbsp;
&lt;br&gt;high) (excluding upper limit). Like in Ruby `…` operator could create such &amp;nbsp;
&lt;br&gt;Range:
&lt;br&gt;&lt;br&gt;for( i : 0…array.length ) …
&lt;br&gt;&lt;br&gt;== Helper method eachLine in the standard library ==
&lt;br&gt;&lt;br&gt;The standard library contains readLine method. And I know from Ruby that &amp;nbsp;
&lt;br&gt;such eachLine could be very useful sometimes:
&lt;br&gt;&lt;br&gt;void eachLine ( InputStream from, String-&amp;gt;void action )
&lt;br&gt;&amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;let reader = new BufferedReader( new InputStreamReader( from ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var line = readLine( reader );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;while( line != null )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;action( line );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;line = readLine( reader );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;== Helper method sprintf in the standard library ==
&lt;br&gt;&lt;br&gt;Sometimes it is necessary to create description of something in the &amp;nbsp;
&lt;br&gt;program (for example before raising exception). In that case the following &amp;nbsp;
&lt;br&gt;sprintf method could help:
&lt;br&gt;&lt;br&gt;String sprintf( String formatString, Object[] args )
&lt;br&gt;&amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;let buffer = new ByteArrayOutputStream();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;let printer = new PrintStream( buffer );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;printer.printf( formatString, args );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return buffer.toString();
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Example of usage:
&lt;br&gt;&lt;br&gt;throw new IllegalValue( sprintf( “value ‘%d’ is out range [%d,%d]”, &amp;nbsp;
&lt;br&gt;[ value, low, high ] ) );
&lt;br&gt;&lt;br&gt;&lt;br&gt;--
&lt;br&gt;That’s all now. Thanks for patience.
&lt;br&gt;I’ll investigate Nice language further.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15252743&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15252743&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15252743&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/My-first-real-world-Nice-experience%3A-impressions-and-proposals-tp15252743p15252743.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15204499</id>
	<title>Re: Operator overloading in Nice</title>
	<published>2008-01-31T05:13:25Z</published>
	<updated>2008-01-31T05:13:25Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">Hi!
&lt;br&gt;&lt;br&gt;On Thu, 31 Jan 2008 15:16:24 +0300, Daniel Bonniot &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15204499&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bonniot@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; But I didn't see any mention about that in the Nice manual. Is operator
&lt;br&gt;&amp;gt;&amp;gt; overloading is an official feature of the language? Or it is a part of
&lt;br&gt;&amp;gt;&amp;gt; implementation and souldn't be used in user code.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; You can use it in user code.
&lt;br&gt;&lt;br&gt;Cool! This is yet another advantage of Nice over Java! So the short &amp;nbsp;
&lt;br&gt;summary about Nice could be:
&lt;br&gt;&lt;br&gt;&amp;quot;New object-oriented programming language based on Java, with the &amp;nbsp;
&lt;br&gt;following advanced features: parametric types, anonymous functions, &amp;nbsp;
&lt;br&gt;multi-methods, tuples, optional parameters and operator overloading. Nice &amp;nbsp;
&lt;br&gt;also detects more errors during compilation (null pointers, casts).&amp;quot;
&lt;br&gt;&lt;br&gt;:)
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15204499&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15204499&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15204499&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Operator-overloading-in-Nice-tp15181652p15204499.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15203534</id>
	<title>Re: Operator overloading in Nice</title>
	<published>2008-01-31T04:16:24Z</published>
	<updated>2008-01-31T04:16:24Z</updated>
	<author>
		<name>Daniel Bonniot-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Jan 30, 2008 1:59 PM, Yauheni Akhotnikau &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15203534&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I've seen that Nice has special syntax for defining operators. It is used
&lt;br&gt;&amp;gt; a lot in stdlib sources, for example:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public OpenRange&amp;lt;int&amp;gt; `..`(int begin, ?int end) ...
&lt;br&gt;&amp;gt; `..`(int begin, null) { ... }
&lt;br&gt;&amp;gt; public override Range&amp;lt;int&amp;gt; `..`(int begin, int end) { ... }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; But I didn't see any mention about that in the Nice manual. Is operator
&lt;br&gt;&amp;gt; overloading is an official feature of the language? Or it is a part of
&lt;br&gt;&amp;gt; implementation and souldn't be used in user code.
&lt;/div&gt;&lt;br&gt;You can use it in user code.
&lt;br&gt;&lt;br&gt;Daniel
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15203534&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Operator-overloading-in-Nice-tp15181652p15203534.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-15181652</id>
	<title>Operator overloading in Nice</title>
	<published>2008-01-30T04:59:02Z</published>
	<updated>2008-01-30T04:59:02Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hi,
&lt;br&gt;&lt;br&gt;I've seen that Nice has special syntax for defining operators. It is used &amp;nbsp;
&lt;br&gt;a lot in stdlib sources, for example:
&lt;br&gt;&lt;br&gt;public OpenRange&amp;lt;int&amp;gt; `..`(int begin, ?int end) ...
&lt;br&gt;`..`(int begin, null) { ... }
&lt;br&gt;public override Range&amp;lt;int&amp;gt; `..`(int begin, int end) { ... }
&lt;br&gt;&lt;br&gt;But I didn't see any mention about that in the Nice manual. Is operator &amp;nbsp;
&lt;br&gt;overloading is an official feature of the language? Or it is a part of &amp;nbsp;
&lt;br&gt;implementation and souldn't be used in user code.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15181652&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15181652&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;This SF.net email is sponsored by: Microsoft
&lt;br&gt;Defy all challenges. Microsoft(R) Visual Studio 2008.
&lt;br&gt;&lt;a href=&quot;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=15181652&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Operator-overloading-in-Nice-tp15181652p15181652.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-14800306</id>
	<title>Re: Is it possible to include autogenerated code fragment into .nice-file?</title>
	<published>2008-01-14T03:53:07Z</published>
	<updated>2008-01-14T03:53:07Z</updated>
	<author>
		<name>Daniel Bonniot-2</name>
	</author>
	<content type="html">&amp;gt; However do you plan to add something like C#'s partial classes in Nice
&lt;br&gt;&amp;gt; (may be in Nice 2.0)?
&lt;br&gt;&lt;br&gt;There is no such plan. But you must know that with multi-methods, it's
&lt;br&gt;already possible to &amp;quot;add&amp;quot; methods to existing classes. I think it
&lt;br&gt;would be possible to do the same for fields (which would only require
&lt;br&gt;fully qualified field names in case of clashes for fields defined in
&lt;br&gt;different packages).
&lt;br&gt;&lt;br&gt;Daniel
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;Check out the new SourceForge.net Marketplace.
&lt;br&gt;It's the best place to buy or sell services for
&lt;br&gt;just about anything Open Source.
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14800306&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Is-it-possible-to-include-autogenerated-code-fragment-into-.nice-file--tp14754883p14800306.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-14788866</id>
	<title>Re: Is it possible to include autogenerated code fragment into .nice-file?</title>
	<published>2008-01-13T09:59:47Z</published>
	<updated>2008-01-13T09:59:47Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">Thanks for the explanation.
&lt;br&gt;&lt;br&gt;However do you plan to add something like C#'s partial classes in Nice &amp;nbsp;
&lt;br&gt;(may be in Nice 2.0)?
&lt;br&gt;&lt;br&gt;On Sun, 13 Jan 2008 20:16:17 +0300, Daniel Bonniot &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14788866&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bonniot@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Jan 11, 2008 12:51 PM, Yauheni Akhotnikau &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14788866&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; Let imagine that there is a tool which takes some specification and
&lt;br&gt;&amp;gt;&amp;gt; generates some Nice code (something like IDL compilers or ASN.1
&lt;br&gt;&amp;gt;&amp;gt; compilers). Is there a method for include such auto generated code into
&lt;br&gt;&amp;gt;&amp;gt; .nice source file.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This is not specifically handled by the nice compiler. However, you
&lt;br&gt;&amp;gt; could perfectly use a preprocessor (for instance cpp, so that you
&lt;br&gt;&amp;gt; would have the same syntax as in C++), and create a script that calls
&lt;br&gt;&amp;gt; cpp before nicec.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Daniel
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14788866&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14788866&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;Check out the new SourceForge.net Marketplace.
&lt;br&gt;It's the best place to buy or sell services for
&lt;br&gt;just about anything Open Source.
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14788866&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Is-it-possible-to-include-autogenerated-code-fragment-into-.nice-file--tp14754883p14788866.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-14788330</id>
	<title>Re: Is it possible to include autogenerated code fragment into .nice-file?</title>
	<published>2008-01-13T09:16:17Z</published>
	<updated>2008-01-13T09:16:17Z</updated>
	<author>
		<name>Daniel Bonniot-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;On Jan 11, 2008 12:51 PM, Yauheni Akhotnikau &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14788330&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; Let imagine that there is a tool which takes some specification and
&lt;br&gt;&amp;gt; generates some Nice code (something like IDL compilers or ASN.1
&lt;br&gt;&amp;gt; compilers). Is there a method for include such auto generated code into
&lt;br&gt;&amp;gt; .nice source file.
&lt;br&gt;&lt;br&gt;This is not specifically handled by the nice compiler. However, you
&lt;br&gt;could perfectly use a preprocessor (for instance cpp, so that you
&lt;br&gt;would have the same syntax as in C++), and create a script that calls
&lt;br&gt;cpp before nicec.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;&lt;br&gt;Daniel
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;Check out the new SourceForge.net Marketplace.
&lt;br&gt;It's the best place to buy or sell services for
&lt;br&gt;just about anything Open Source.
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14788330&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Is-it-possible-to-include-autogenerated-code-fragment-into-.nice-file--tp14754883p14788330.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-14754883</id>
	<title>Is it possible to include autogenerated code fragment into .nice-file?</title>
	<published>2008-01-11T03:51:50Z</published>
	<updated>2008-01-11T03:51:50Z</updated>
	<author>
		<name>Yauheni Akhotnikau</name>
	</author>
	<content type="html">Let imagine that there is a tool which takes some specification and &amp;nbsp;
&lt;br&gt;generates some Nice code (something like IDL compilers or ASN.1 &amp;nbsp;
&lt;br&gt;compilers). Is there a method for include such auto generated code into &amp;nbsp;
&lt;br&gt;.nice source file.
&lt;br&gt;&lt;br&gt;For example, in C++ I can do this by #include directive:
&lt;br&gt;&lt;br&gt;class My {
&lt;br&gt;&amp;nbsp; &amp;nbsp;… my code …
&lt;br&gt;&amp;nbsp; &amp;nbsp;#include “some_auto_generated_stuff.inl”
&lt;br&gt;&amp;nbsp; &amp;nbsp;…
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;In C# 2.0 there is ‘partial classes’ for that purpose (see &amp;nbsp;
&lt;br&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/C_Sharp_(programming_language)#C.23_2.0_new_language_features):&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/C_Sharp_(programming_language)#C.23_2.0_new_language_features):&lt;/a&gt;&lt;br&gt;&lt;br&gt;// My.cs
&lt;br&gt;public partial class My {
&lt;br&gt;&amp;nbsp; &amp;nbsp;… my code …
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;// SomeAutoGeneratedStuff.inl
&lt;br&gt;public partial class My {
&lt;br&gt;&amp;nbsp; &amp;nbsp;… auto generated code …
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;But I don’t know how to do that in Nice in the case when the tool &amp;nbsp;
&lt;br&gt;generates only part of class (some methods and fields), not a whole class.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Regards,
&lt;br&gt;Yauheni Akhotnikau
&lt;br&gt;Senior Programmer
&lt;br&gt;Intervale
&lt;br&gt;e-mail:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14754883&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14754883&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eao197@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;-------------------------------------------------------------------------
&lt;br&gt;Check out the new SourceForge.net Marketplace.
&lt;br&gt;It's the best place to buy or sell services for
&lt;br&gt;just about anything Open Source.
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Nice-info mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=14754883&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nice-info@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/nice-info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/nice-info&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Is-it-possible-to-include-autogenerated-code-fragment-into-.nice-file--tp14754883p14754883.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-14128816</id>
	<title>www.nikeperfect.com.sell nike puma adidas jordan shoes,jeans,cap,and brand T-shirt supplier</title>
	<published>2007-12-03T04:29:00Z</published>
	<updated>2007-12-03T04:29:00Z</updated>
	<author>
		<name>shuaige7</name>
	</author>
	<content type="html">&lt;br&gt;Welcome to www.nikeperfect.com	 . We are china brand shoes supplier.
&lt;br&gt;We can offer large amounts of name brand T-shirt, watch &amp;nbsp;and sports shoes at low prices, i.e. Nike, Puma, Adidas, Timberland, Converse, Jordan Series(from Jordan 1 to Jordan 22) such as J1, J2, J3, J4, J5,J7, J13, J22 . Ai