From 43849ad79000a5317f1a6aa1d36225f5b4ba44a8 Mon Sep 17 00:00:00 2001 From: ncave Date: Mon, 20 Nov 2017 09:11:14 -0800 Subject: [PATCH] List.fold IL simplification --- src/fsharp/FSharp.Core/list.fs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/fsharp/FSharp.Core/list.fs b/src/fsharp/FSharp.Core/list.fs index 6b31ea2b0f..45eccc3f3a 100644 --- a/src/fsharp/FSharp.Core/list.fs +++ b/src/fsharp/FSharp.Core/list.fs @@ -216,11 +216,10 @@ namespace Microsoft.FSharp.Collections | [] -> state | _ -> let f = OptimizedClosures.FSharpFunc<_,_,_>.Adapt(folder) - let rec loop s xs = - match xs with - | [] -> s - | h::t -> loop (f.Invoke(s,h)) t - loop state list + let mutable acc = state + for x in list do + acc <- f.Invoke(acc, x) + acc [] let pairwise (list: 'T list) =