1 USING: kernel locals math sequences sequences.private ;
6 :: insert ( ... seq quot: ( ... elt -- ... elt' ) n -- ... )
8 n n 1 - [ seq nth-unsafe ] bi@
9 2dup [ quot call ] bi@ >= [ 2drop ] [
10 n 1 - n [ seq set-nth-unsafe ] bi-curry@ bi*
13 ] unless ; inline recursive
17 : insertion-sort ( ... seq quot: ( ... elt -- ... elt' ) -- ... )
18 ! quot is a transformation on elements
19 over length [ insert ] 2with 1 -rot each-integer-from ; inline