1
0
mirror of https://github.com/danog/ton.git synced 2024-12-02 09:28:02 +01:00
ton/crypto/test/fift/sort.fif
2019-09-07 14:33:36 +04:00

28 lines
669 B
Plaintext

{ null null rot
{ dup null? not }
{ uncons swap rot cons -rot } while drop
} : split
variable 'sort variable 'merge variable 'compare
{ 'sort @ execute } : sort
{ 'merge @ execute } : merge
{ 'compare @ execute } : compare
' < 'compare !
{ dup null? { drop } {
over null? { nip } {
over car over car compare ' 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< } 'compare !
dup .l cr sort .l cr