1
0
mirror of https://github.com/danog/ton.git synced 2024-12-11 16:49:37 +01:00
ton/crypto/test/fift/sort2.fif

29 lines
634 B
Plaintext
Raw Normal View History

2019-09-07 12:03:22 +02:00
{ hole dup 1 { @ execute } does create 1 ' ! does create } : defvect
defvect sort :sort
defvect merge :merge
defvect less :less
' < :less
{ null null rot
{ dup null? not }
{ uncons swap rot cons -rot } while drop
} : split
{ dup null? { drop } {
over null? { nip } {
over car over car less ' swap if
uncons rot merge cons
} cond
} cond
} :merge
{ dup null? {
dup cdr null? {
split sort swap sort merge
} ifnot
} ifnot
} :sort
3 1 4 1 5 9 2 6 5 9 list
dup .l cr sort .l cr
"once" "upon" "a" "time" "there" "lived" "a" "very" "little" "kitten" 10 list
{ $cmp 0< } :less
dup .l cr sort .l cr