perl6.suОсвоим perl6 к 2015 году!

цепочки действий


       Как мы уже не раз пробовали, теперь в perl можно использовать цепочки действий (методов). Вместо громоздких конструкций со скобками вроде такого: действие1(действие2(действие3(действие4(1000)))) можно делать так 1000.действие4.действие3.действие2.действие1:
    
#!/usr/bin/perl6
1000.rand.sin.cos.exp.log10.say;
0.346890625972812

       Сначала находится случайное число от 0 до 1000, затем его синус, затем косинус (для получившегося синуса), затем экспонента, затем логарифм. И уже логарифм выводится на печать с помощью say.
       Вот интересно, а насколько длинные цепочки таких действий можно строить?
    
#!/usr/bin/perl6
1000.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.sin.cos.exp.log10.say;
0.401544055915758

       Sic! Однако, это самая длинная из возможных цепочек действий. Стоит добавить ещё одно - получим сообщение о достижении максимальной глубины рекурсии. Считаем сколько у нас действий в строке. В строке 161 точка. Значит 162 - вот максимальное число звеньев в цепочке. Для скромных программ должно хватить.
# mutatio postrema: 30 Jan 2012

   цепочки действий      charta situs       nota XXXVII   

    RSS     stdin@perl6.su    © Alexius Karmanov, 2010-2011