<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>In the works Sam would say -- Matthias</div><div><br></div><br><div><div>On Nov 24, 2011, at 4:46 PM, Ismael Figueroa Palet wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Thanks Robby for your answer,<br><br>When I create an annotated-proc (as in <a href="http://docs.racket-lang.org/reference/procedures.html">http://docs.racket-lang.org/reference/procedures.html</a>)<br><br>Unfortunately it seems that I lose type information:<br>
<br>&gt; (annotated-proc (lambda (x) x) (gensym))<br><br>- : annotated-proc<br>#&lt;procedure&gt;<br>&gt; (lambda (x) x)<br><br>- : (Any -&gt; Any : ((! False @ 0) | (False @ 0)) (0))<br>#&lt;procedure&gt;<br>&gt; <br><br>
So it seems in Typed Racket applicable structs cannot replace closures?<br><br><br><div class="gmail_quote">2011/11/24 Robby Findler <span dir="ltr">&lt;<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Not a direct answer to your question, but comparing procedures for<br>
equality using eq? can be fragile (contracts will break the equality,<br>
depending on how you use them, for example).<br>
<br>
You might instead use applicable structs to implement the equality by<br>
putting some token you use for equality into a second field.<br>
<br>
Robby<br>
<div><div></div><div class="h5"><br>
On Thu, Nov 24, 2011 at 2:14 PM, Ismael Figueroa Palet<br>
&lt;<a href="mailto:ifigueroap@gmail.com">ifigueroap@gmail.com</a>&gt; wrote:<br>
&gt; I need to compare to procedures for equality. In the untyped version of the<br>
&gt; code I used eq? and it worked for my purposes.<br>
&gt; Now, in the Typed Racket version I'm having the problem that somehow one of<br>
&gt; the procedures is wrapped in a "typed value" struct while the other is not.<br>
&gt;<br>
&gt; When I display the values I get:<br>
&gt;<br>
&gt; #&lt;Typed Value: #&lt;procedure:A&gt;&gt; #&lt;procedure:A&gt;<br>
&gt;<br>
&gt; is there any way to unwrap the value?<br>
&gt;<br>
&gt; Thanks<br>
&gt; --<br>
&gt; Ismael<br>
&gt;<br>
&gt;<br>
</div></div>&gt; _________________________________________________<br>
&gt; &nbsp;For list-related administrative tasks:<br>
&gt; &nbsp;<a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a><br>
&gt;<br>
</blockquote></div><br><br clear="all"><br>-- <br>Ismael<br><br>
_________________________________________________<br> &nbsp;For list-related administrative tasks:<br> &nbsp;<a href="http://lists.racket-lang.org/listinfo/users">http://lists.racket-lang.org/listinfo/users</a></blockquote></div><br></body></html>