home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 52
/
Amiga_Dream_52.iso
/
RiscOS
/
APP
/
DEVS
/
FORTH
/
WIMPFO.ZIP
/
!WimpForth
/
ssort
< prev
next >
Wrap
Text File
|
1996-03-21
|
514b
|
28 lines
\ shell sort
anew shellsort
0 value anf
defer s@
: _s@ + c@ ; ' _s@ is s@
defer s!
: _s! + c! ; ' _s! is s!
defer s> ' > is s>
variable x
: shellsort ( ad len -- )
swap to anf
1 begin 2dup > while 2* repeat 1-
begin 2/ dup
while 2dup
do i dup anf s@ 0 x s!
over -
begin dup anf s@ 0 x s@ s>
while 2dup + >r
dup anf s@ r> anf s!
over -
dup 0<
until then over +
0 x s@ over anf s! drop
loop
repeat 2drop ;