Triangle Minimal Path
(= 7 (__ '([1] [2 4] [5 1 4] [2 3 4 5]))) ; 1->2->1->3 (= 20 (__ '([3] [2 4] [1 9 3] [9 9 2 4] [4 6 6 7 8] [5 7 3 5 1 4]))) ; 3->4->3->2->7->1
my solution : https://www.refheap.com/114220
((fn f [vs & [i]] (let [idx (if (nil? i) 0 i)] (if (empty? vs) 0 (+ (min (f (rest vs) idx) (f (rest vs) (inc idx))) (get (first vs) idx) ) ) ) ) '( [3] [2 4] [1 9 3] [9 9 2 4] [4 6 6 7 8] [5 7 3 5 1 4]) )