<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-7689513627092968386.post6641508838201495043..comments</id><updated>2010-04-28T08:24:37.629-07:00</updated><title type='text'>Comments on The Java Mint Blog: New Mint Release: r15405</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.javamint.org/feeds/6641508838201495043/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7689513627092968386/6641508838201495043/comments/default'/><link rel='alternate' type='text/html' href='http://www.javamint.org/2010/04/new-drjava-with-mint-version.html'/><author><name>Walid Taha</name><uri>http://www.blogger.com/profile/01616333334672611519</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_4NX-MFMWn08/SvuJNotgK9I/AAAAAAAAABg/ldVmrOExjbc/S220/Walid+Photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7689513627092968386.post-1430145008657404671</id><published>2010-04-28T08:24:37.621-07:00</published><updated>2010-04-28T08:24:37.621-07:00</updated><title type='text'>Dear Mathias,

In the example Power.java (program ...</title><content type='html'>Dear Mathias,&lt;br /&gt;&lt;br /&gt;In the example Power.java (program at the end of the comment), the compiled function x -&amp;gt; x^17  is obtained by means of an anonymous extension of abstract class PowerFun, as shown subsequently:&lt;br /&gt;&lt;br /&gt;        PowerFun spower17 = &amp;lt;| new PowerFun() {&lt;br /&gt;            public int power(final int x){&lt;br /&gt;                return `(power2(&amp;lt;|x|&amp;gt;, 17));&lt;br /&gt;            }&lt;br /&gt;        } |&amp;gt;.run();&lt;br /&gt;&lt;br /&gt;Now, imagine that I need to compile a new function that do:&lt;br /&gt;x,y -&amp;gt; x^17 + y^17&lt;br /&gt;How can I build the code for this function, and do it by reusing the already compiled function spower17.power(int) ?&lt;br /&gt;&lt;br /&gt;(I guess the anonymous class is final, but not PowerFun)&lt;br /&gt;&lt;br /&gt;Yours,&lt;br /&gt;&lt;br /&gt;Frédéric&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---------------------------------------------------&lt;br /&gt;&lt;br /&gt;import edu.rice.cs.mint.runtime.Code;&lt;br /&gt;import edu.rice.cs.mint.runtime.SafeCode;&lt;br /&gt;&lt;br /&gt;public class Power{&lt;br /&gt;    public static void main(String[] args){&lt;br /&gt;        &lt;br /&gt;        System.out.println(power(2, 17));&lt;br /&gt;        long start = System.nanoTime();&lt;br /&gt;        for(int x = 0; x &amp;lt; 20000; x++)&lt;br /&gt;            power(2, 17);&lt;br /&gt;        long unstaged = System.nanoTime() - start;&lt;br /&gt;        &lt;br /&gt;        PowerFun spower17 = &amp;lt;| new PowerFun() {&lt;br /&gt;            public int power(final int x){&lt;br /&gt;                return `(power2(&amp;lt;|x|&amp;gt;, 17));&lt;br /&gt;            }&lt;br /&gt;        } |&amp;gt;.run();&lt;br /&gt;        &lt;br /&gt;        System.out.println(spower17.power(2));&lt;br /&gt;        start = System.nanoTime();&lt;br /&gt;        for(int x = 0; x &amp;lt; 20000; x++)&lt;br /&gt;            spower17.power(2);&lt;br /&gt;        long staged = System.nanoTime() - start;&lt;br /&gt;        &lt;br /&gt;        System.out.println(&amp;quot;Unstaged -&amp;gt; &amp;quot; + unstaged + &amp;quot; ms&amp;quot;);&lt;br /&gt;        System.out.println(&amp;quot;Staged -&amp;gt;   &amp;quot; + staged + &amp;quot; ms&amp;quot;);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public static int power(int x, int n){&lt;br /&gt;        if (n == 1)&lt;br /&gt;            return x;&lt;br /&gt;        else&lt;br /&gt;            return x * power(x, n-1);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public static separable SafeCode power2(SafeCode x, int n){&lt;br /&gt;        if (n == 1)&lt;br /&gt;            return x;&lt;br /&gt;        else&lt;br /&gt;            return &amp;lt;| `x * `(power2(x, n-1)) |&amp;gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public static abstract class PowerFun{&lt;br /&gt;        public abstract int power(int x);&lt;br /&gt;    }&lt;br /&gt;}</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7689513627092968386/6641508838201495043/comments/default/1430145008657404671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7689513627092968386/6641508838201495043/comments/default/1430145008657404671'/><link rel='alternate' type='text/html' href='http://www.javamint.org/2010/04/new-drjava-with-mint-version.html?showComment=1272468277621#c1430145008657404671' title=''/><author><name>Frederic</name><uri>http://www.blogger.com/profile/09090714176631835944</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.javamint.org/2010/04/new-drjava-with-mint-version.html' ref='tag:blogger.com,1999:blog-7689513627092968386.post-6641508838201495043' source='http://www.blogger.com/feeds/7689513627092968386/posts/default/6641508838201495043' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-239403800'/></entry></feed>
