summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/fixed-points.nix9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/fixed-points.nix b/lib/fixed-points.nix
index 2f818c88de5d..968930526a63 100644
--- a/lib/fixed-points.nix
+++ b/lib/fixed-points.nix
@@ -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