[Note to tt list: this is from a discussion on the modperl list...]

[andy, can you put this in the example section, or maybe add it
to the .t samples for recursion testing? :]

>>>>> "Andy" == Andy Wardley <[EMAIL PROTECTED]> writes:

Andy> Indeed.  And TT was designed to be general purpose enough to solve
Andy> the Towers of Hanoi.  I personally don't use it like that when I'm
Andy> building web sites, preferring to adopt a much more rigorous coding
Andy> standard, but there are also plenty of times when I do for small hacks.

    $ tpage
    [%
      BLOCK move_disk; # disk_number from_peg to_peg other_peg
        IF disk_number > 1;
          INCLUDE move_disk
            disk_number = (disk_number - 1)
            to_peg = other_peg
            other_peg = to_peg;
        END;
        "move disk "; disk_number; " from peg "; from_peg; " to peg "; to_peg; "\n";
        IF disk_number > 1;
          INCLUDE move_disk
            disk_number = (disk_number - 1)
            from_peg = other_peg
            other_peg = from_peg;
        END;
      END;
    -%]
    [% INCLUDE move_disk
      disk_number = 5
      from_peg = "A"
      to_peg = "C"
      other_peg = "B"
    -%]
    ^D
    move disk 1 from peg A to peg C
    move disk 2 from peg A to peg B
    move disk 1 from peg C to peg B
    move disk 3 from peg A to peg C
    move disk 1 from peg B to peg A
    move disk 2 from peg B to peg C
    move disk 1 from peg A to peg C
    move disk 4 from peg A to peg B
    move disk 1 from peg C to peg B
    move disk 2 from peg C to peg A
    move disk 1 from peg B to peg A
    move disk 3 from peg C to peg B
    move disk 1 from peg A to peg C
    move disk 2 from peg A to peg B
    move disk 1 from peg C to peg B
    move disk 5 from peg A to peg C
    move disk 1 from peg B to peg A
    move disk 2 from peg B to peg C
    move disk 1 from peg A to peg C
    move disk 3 from peg B to peg A
    move disk 1 from peg C to peg B
    move disk 2 from peg C to peg A
    move disk 1 from peg B to peg A
    move disk 4 from peg B to peg C
    move disk 1 from peg A to peg C
    move disk 2 from peg A to peg B
    move disk 1 from peg C to peg B
    move disk 3 from peg A to peg C
    move disk 1 from peg B to peg A
    move disk 2 from peg B to peg C
    move disk 1 from peg A to peg C
    $

:-)

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!


Reply via email to