Merge pull request #59777 from alyssais/converge

lib.converge: optimise
This commit is contained in:
Charles Strahan 2019-04-17 10:03:30 -05:00 committed by GitHub
commit 2b4bcb0344
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -30,9 +30,12 @@ rec {
# nix-repl> converge (x: x / 2) 16
# 0
converge = f: x:
if (f x) == x
then x
else converge f (f x);
let
x' = f x;
in
if x' == x
then x
else converge f x';
# Modify the contents of an explicitly recursive attribute set in a way that
# honors `self`-references. This is accomplished with a function