factorial=: 1:`(]*factorial@<:) @. * factorial "0 i.6 1 1 2 6 24 120Заметьте, что 1: обозначает постоянную функцию, результат которой всегда 1 .
1:`(]*$:@<:) @. * "0 i. 6 1 1 2 6 24 120В задаче о Ханойской Башне, набор n дисков (каждый своего размера) должен быть перемещен со стержня A на стержень B, используя третий стержень C, при ограничении, что больший диск нельзя класть на меньший. Следующее, представляет из себя рекурсивное определение этого процесса:
h=: b`(p,.q,.r)@.c
c=: 1: < [
b=: 2&,@[ $ ]
p=: <:@[ h 1: A. ]
q=: 1: h ]
r=: <:@[ h 5: A. ]
3 h x=: 'ABC'
AABACCA
BCCBABB
0 1 2 3 4 <@h"0 1 x
++-+---+-------+---------------+
||A|AAC|AABACCA|AACABBAACCBCAAC|
||B|CBB|BCCBABB|CBBCACCBBAABCBB|
++-+---+-------+---------------+
Упражнения
| 22.1 | Используйте следующее для упражнений по чтению и письму:
f=:1:`(+//.@(,:~)@($:@<:))@.* Биномиальные коэффициенты
<@f"0 i.6 Упакованные бином. коэффициенты
g=:1:`((],+/@(_2&{.))@$:@<:)@.* Числа Фибоначчи
|