Package: rep Version: 0.92.5-3 The attached piece of Lisp source, when run through rep with a command such as "rep test.lisp", prints
a1 -> 2 a2 -> 5 b1 -> 5 where I would have expected the middle line to read 'a2 -> 2', because the functions a2 and a1 are return values from the same lambda and ought to behave the same. If I remove or comment out line 3 of the file, which is a call to mapc that I would expect to have no effect at all, then the output changes to become what I expected. This also happens if I change the final line of 'indirector' so that the lambda returns index rather than index-copy - another transformation that surely ought to make no difference. I can't _think_ of any quirk of semantics in any flavour of Lisp that makes this behaviour expected. Cheers, Simon -- for k in [pow(x,37,0x1a1298d262b49c895d47f) for x in [0x50deb914257022de7fff, 0x213558f2215127d5a2d1, 0x90c99e86d08b91218630, 0x109f3d0cfbf640c0beee7, 0xc83e01379a5fbec5fdd1, 0x19d3d70a8d567e388600e, 0x534e2f6e8a4a33155123]]: print("".join([chr(32+3*((k>>x)&1))for x in range(79)])) # <ana...@pobox.com>
test.lisp
Description: Binary data