Ryan, hello. On 26 Sep 2012, at 22:09, Ryan Culpepper <[email protected]> wrote:
>> The documentation says: >> >> (call-with-semaphore sema >> proc >> [ try-fail-thunk] >> arg ...) → any >> >> However it appears that the try-fail-chunk argument is not in fact optional. > > Here's what the documentation means: There must be at least two arguments. > The first two arguments are 'sema' and 'proc'. If there are three or more > arguments, the third argument is 'try-fail-thunk'. If there are four or more > arguments, all arguments starting with the fourth argument are collected in a > list for the 'args' rest argument. That certainly makes sense (and matches the behaviour), but in that case, I'd have expected to see (call-with-semaphore sema proc [try-fail-thunk arg …]) With the […] round only try-fail-thunk, I interpret this documentation fragment, in combination with the parallel text, as meaning that if there is a third argument, and it is either a procedure or #f, then it is interpreted as 'try-fail-thunk', but if the third argument is not either of these, then it is interpreted as the first 'arg'. >> Is that just an oversight, or is the return value >> of CALL-WITH-SEMAPHORE undefined? > > It's probably an oversight. Should I raise a doc bug, or …. All the best, Norman -- Norman Gray : http://nxg.me.uk SUPA School of Physics and Astronomy, University of Glasgow, UK ____________________ Racket Users list: http://lists.racket-lang.org/users

