From 28ec841c701750b89318a5321fd402753571ed10 Mon Sep 17 00:00:00 2001
From: David Bogle <davidbogle.92@gmail.com>
Date: Sat, 15 Apr 2017 00:39:01 -0500
Subject: [PATCH] Update solution for basic recursion

---
 exercises/basic_recursion/solution/solution.js | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/exercises/basic_recursion/solution/solution.js b/exercises/basic_recursion/solution/solution.js
index 485507f..514d7d9 100644
--- a/exercises/basic_recursion/solution/solution.js
+++ b/exercises/basic_recursion/solution/solution.js
@@ -1,8 +1,7 @@
 function reduce(arr, fn, initial) {
-  return (function reduceOne(index, value) {
-    if (index > arr.length - 1) return value // end condition
-    return reduceOne(index + 1, fn(value, arr[index], index, arr)) // calculate & pass values to next step
-  })(0, initial) // IIFE. kick off recursion with initial values
+  if (arr.length === 0) return initial // end condition
+  var subset = arr.slice(0, arr.length - 1) // setup recursive call with left subset
+  return fn(reduce(subset, fn, initial), arr[arr.length - 1]) // pass last element to traverse ltr
 }
 
 module.exports = reduce