<div class="gmail_extra">On Tue, Dec 4, 2012 at 7:49 PM, Robby Findler <span dir="ltr"><<a href="mailto:robby@eecs.northwestern.edu" target="_blank">robby@eecs.northwestern.edu</a>></span> wrote:<br><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Flat contracts includes more things than contracts. For example:</div><div><br></div><div><div>[robby@yanpu] ~/git/plt/collects/scribblings/reference$ racket</div>
<div>Welcome to Racket v5.3.1.9.</div><div>> (flat-contract? 'x)</div>
<div>#t</div><div>> (procedure? 'x)</div><div>#f</div><div><br></div><div>The flat-contract function is a holdover from the days when flat contracts weren't able to be used directly as predicate functions.</div>
</div></blockquote><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
<div><br></div><div>I'll push a clarification to the docs for flat-contract.</div></div></blockquote><div><br>Isn't that the wrong way around? The flat-contract function lets you use a predicate as a contract, not a contract as a predicate. Presumably it's from before predicates could be used as contracts, although I hadn't realized there was such a time.<br>
<br>--Carl<br></div></div></div>