<div dir="ltr">Mostly I was curious if there were an approved way of doing this. The need is not urgent. <div><br></div><div>I have a function that returns a list of lists, and its output contract is (listof list?). I was making a variant of it that returned values rather than a list (by just doing (apply values ...) to the original function result). So I wanted to update the output contract accordingly.</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 18, 2014 at 11:16 AM, Robby Findler <span dir="ltr"><<a href="mailto:robby@eecs.northwestern.edu" target="_blank">robby@eecs.northwestern.edu</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">That's not currently possible. I think it would make sense to have a<br>
new contract combinator that supported something like that, but I'll<br>
note that you're kind of fighting with the "smooth" optimization paths<br>
in Racket when you do something like that (as compared to simply<br>
returning a list).<br>
<br>
Can you maybe give a little more context to help me understand what<br>
you're doing?<br>
<br>
Robby<br>
<div><div class="h5"><br>
<br>
On Thu, Dec 18, 2014 at 1:02 PM, Matthew Butterick <<a href="mailto:mb@mbtype.com">mb@mbtype.com</a>> wrote:<br>
> "If (values range-expr ...) is used as the last sub-form of ->, the function must produce a result for each contract, and each value must match its respective contract." [1]<br>
><br>
> I understand what this means if you have a fixed number of return values. But how do you write an output contract for an indeterminate number of return values?<br>
><br>
> Similar to how (listof type?) contract doesn't care how long the list is, I'm trying to write a contract that means "however many values come back, they all need to be integers".<br>
><br>
><br>
> [1] <a href="http://docs.racket-lang.org/reference/function-contracts.html" target="_blank">http://docs.racket-lang.org/reference/function-contracts.html</a><br>
</div></div>> ____________________<br>
>   Racket Users list:<br>
>   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</blockquote></div></div>