[Nix-dev] Trying to implement quicksort in nix...

Matthias Beyer mail at beyermatthias.de
Wed Apr 13 14:39:22 CEST 2016


Hi,

I struggle implementing quicksort in the nix expression language... maybe one of
you gurus can help me? Here's what I have so far:

    let
        len    = xs: builtins.length xs;
        fst    = xs: builtins.head xs;
        lower  = x: xs: builtins.filter (a: a < x) xs;
        higher = x: xs: builtins.filter (a: a >= x) xs;

        qs = xs:
            if (0 == (len xs)) then []
            else (qs (lower (fst xs) xs)) ++ (fst xs) ++ (qs (higher (fst xs) xs));
    in
        qs [3 4 1 2]

Any ideas why I'm getting a stackoverflow due to infinite recursion?

-- 
Mit freundlichen Grüßen,
Kind regards,
Matthias Beyer

Proudly sent with mutt.
Happily signed with gnupg.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
Url : http://lists.science.uu.nl/pipermail/nix-dev/attachments/20160413/63f0ec22/attachment.bin 


More information about the nix-dev mailing list