Paste: after inlines
Author: | prunedtree |
Mode: | factor |
Date: | Mon, 17 Nov 2008 14:52:52 |
Plain Text |
( scratchpad ) [ list>sequence ] optimized.
[
V{ } (clone) dup
>r 2 slot (clone) r>
swap over 2 set-slot dup
>r r>
>r
>r dup mlist? [ ] [ mlist bad-slot-value ] if 1 {
mlist-cursor
2
1
tuple
-90033422
mlist-cursor
-206343022
} <tuple-boa> r>
\ ( gensym ) [
dup
>r
>r dup
>r 0 r>
dup
>r 2 slot 2 slot 2dup 1 slot fixnum< [ t ] [ f ] if
[ nip ] [ bounds-error ] if
>r r>
2 slot r>
2 slot swap
>r r>
>fixnum swap
>r dup 0 fixnum< [ 0 swap fixnum- ] [ ] if r>
swap
>r r>
>fixnum swap
>r 1 fixnum-fast r>
2 slot 2dup dupd 1 slot fixnum<
[ 0 fixnum>= ] [ drop f ] if [ ] [ bounds-error ] if
>r r>
swap 2 fixnum+fast slot
>r r>
>fixnum 0 fixnum<
[ dup >r (delete-next) r> mlist-cursor=>lazy-next>> ] [
>r 0 r>
dup
>r 2 slot 2 slot 2dup 1 slot fixnum< [ t ] [ f ] if
[ nip ] [ bounds-error ] if
>r r>
2 slot r>
2 slot swap
>r r>
>fixnum swap
>r dup 0 fixnum< [ 0 swap fixnum- ] [ ] if
r>
swap
>r r>
>fixnum {
mlist-cursor
2
1
tuple
-90033422
mlist-cursor
-206343022
} <tuple-boa>
] if r>
over
>r
>r dup
>r 3 slot 2 fixnum- r>
2 slot 3 slot 2dup dupd 1 slot <-integer-fixnum
[ 0 >=-integer-fixnum ] [ drop f ] if
[ ] [ bounds-error ] if
>r >fixnum r>
swap 2 fixnum+fast slot r>
push r>
dup dup
>r 3 slot r>
2 slot 5 slot eq? [ t ] [ f ] if [ f ] [ t ] if r>
swap [ ( gensym ) ] [ drop drop ] if
] label r>
]
New Annotation