Числа Фибоначчи в APL
В данном примере используется анонимно D-функция, рекурсивно вызывающая сама себя. Первое выражение функции обрабатывает случай первых двух чисел Фибоначчи, равных единице. Для остальных чисел работает второе выражение, которое вызывает эту же D-функцию (функция ∇
) для меньших значений аргументов и суммирует их. Первая строка ассоциирует массив чисел с переменной fib
и ничего не выводит.
Во второй строке вычисленный массив чисел Фибоначчи выводится в нужном формате: к каждому элементу применяется функция, конкатенирующая его с запятой-разделителем, элементы получившегося массива конкатенируются друг с другом (,/
) и к результату добавляется троеточие. Итоговый вывод этой команды выглядит следующим образом:
1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 , 233 , 377 , 610 , 987 , ...
fib←{⍵≤2:1 ⋄ (∇⍵-1)+∇⍵-2}¨1+⍳16
(⊃(,/{⍵, ', '}¨fib)),'...'
Комментарии
]]>blog comments powered by Disqus
]]>