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>

Attachment: test.lisp
Description: Binary data

Reply via email to