On Wed, Jan 19, 2011 at 5:29 PM, Hendrik Boom <[email protected]> wrote: > I see a lot of code, but what's the puzzle. Presumably there's some > kind of question that has to be answered about it? > > -- hendrik
The program is a multithreaded program that crashes unless the executions of the threads are interleaved in a very specific way. So you can't just run the program, because most likely, it will crash. For example, computing (* a (first a)) only makes sense if another thread changes the value of a from a number to a list in the midst of the evaluation of that statement (and in fact, there is an instruction in one of the other threads that does exactly that). So there is a way the program could conceivably execute if the timing of everything happens in a certain way, but it is unlikely to occur in practice. The puzzle appears to be to find the interleaving that works, and simulate the execution of the program. Presumably, the program prints out a series of numbers and/or characters which will give a message, possibly encoded in some further way, that leads to the solution (probably a word). _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

