Raku Land

UK::Sort

zef:andm

UK::Sort

Sorts by Ukrainian alphabet.

Installation

zef install UK::Sort

Usage

use UK::Sort;

say sortuk <є а ґ я ї е і ь г и>;
#  output: (а г ґ е є и і ї ь я)

my @list = <явір іній пʼять ґава етер їжак гора авто ирій єнот>;
sort { cmp_uk($^a,$^b) }, @list;
#  output: (авто гора ґава етер єнот ирій іній їжак пʼять явір)

Collation

Sorting with using Collation is similar, but not exact.

<є а ґ я ї е і ь г и>.collate;
# output:   (а г ґ е є и і ї ь я)  # OK

<єнот явір авто етер ґава іній гора їжа>.collate
# output:   (авто ґава гора етер єнот їжа іній явір)  # NOT OK
# expected: (авто гора ґава етер єнот іній їжа явір)

'ге' coll 'ґе'  # Less  # OK

Setting the $*COLLATION variable has no effect.

$*COLLATION.set(:primary(1), :secondary(1), :quaternary(1), :tertiary(1));
<гора ґава>.collate;
#output: (ґава гора)  # NOT OK

License

Copyright (C) 2022 Andrij Mizyk

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.