見つけた

昼休みの昼寝前にちょっと時間があったので試してみた。
ええと、LREF をカンニングしつつ以下。

gosh> (disasm (lambda (a b c d e f) (lambda (x y z) (a x))))
main_code (name=#f, code=0x80d68a0, size=3, const=1, stack=0):
args: #f
     0 CLOSURE #<lambda 0>      ; (lambda (x y z) (a x))
     2 RET 
internal_closure_0 (name=#f, code=0x80d68b0, size=4, const=0 stack=4):
args: #f
     0 LREF2-PUSH               ; x
     1 LREF(1,5)                ; a
     2 TAIL-CALL(1)             ; (a x)
     3 RET 
#<undef>
gosh>

惜しい。逆だったらイケそう

gosh> (disasm (lambda (a b c d e f) (lambda (x y z) (x a))))
main_code (name=#f, code=0x81f1cd0, size=3, const=1, stack=0):
args: #f
     0 CLOSURE #<lambda 0>      ; (lambda (x y z) (x a))
     2 RET 
internal_closure_0 (name=#f, code=0x81f1ce0, size=4, const=0 stack=4):
args: #f
     0 LREF-PUSH(1,5)           ; a
     1 LREF2                    ; x
     2 TAIL-CALL(1)             ; (x a)
     3 RET 
#<undef>
gosh> 

出た。がしかし何故にこうなるのか、は未だ謎。(を