Ну хорошо, давайте уточним терминологию. Вот, например, нужно написать функцию, которая в множестве натуральных чисел от 100 до 1000 найдёт общее количество чисел, которые в своём десятичном написании одновременно содержат цифры 2 и 3 (например, число 203). Как это решить (не влезая в дебри теории чисел), акромя как последовательным перебором числа за числом? Подобный перебор будет реализован через рекурсию, так? И чем такой перебор терминологически правильно назвать? "cycle realised through recursion"?
можно реализовать и циклом и рекурксией -
цикл
for i <- 100..1000 do
if i |> to_string() |> String.contains?("2") and i |> to_string() |> String.contains?("3") do
i
else
nil
end
end
рекурсия
def process([], result), do: result
def process([head | tail], result) do
if i |> to_string() |> String.contains?("2") and i |> to_string() |> String.contains?("3") do
process(tail, [i | result])
else
process(tail, result)
end
end
process(100..1000, [])