در زبان های pure functional که حلقه for ندارند با استفاده از مفاهیم بازگشتی و pattern matching این کار را انجام می دهند، مثال زیر با استفاده از زبان برنامه نویسی erlang و بدون حلقه for مجموع عناصر یک لیست را بدست می آورد:
-module(saeed).
-export([total/1]).
total([]) -> 0;
total([Item|Tail]) -> Item + total(Tail).