Notes-TheAlgorithmDesignManual/GrokkingAlgorithms.org

631 B

Notes & Exercises: Grokking Algorithms

Random

Recursive sum

OCaml

let rec sum_rec = function
  | [] -> 0
  | n::ns -> n + sum_rec ns;;

sum_rec [2;3;4;2;1];;
12
let sum_rec_tail list =
  let rec f acc = function
  | [] -> 0
  | n::ns -> sum_rec (acc + n) ns
  in f 0 list;;

sum_rec [2;3;4;2;1];;
12

Python

def sum_rec(arr):
    if not arr:
        return 0
    else:
        return arr[0] + sum_rec(arr[1:])

print(sum_rec([1,2,3]))
6