2014-09-07 5 views
2

Я новичок в postscript. Что такое формат для функции, которая вызывает себя рекурсивно. скажем, у меня есть функция, называемая квадратами, которая выводит квадрат. 5 square // распечатывает 5 квадратовКак сделать рекурсивный цикл postcript

Я думаю, что 5 будет вершиной стека. Каждый repititon будет уменьшать это число до 0. Если есть более простой способ сделать это, дайте мне знать.

ответ

1
%!PS- 
% 
% int myfunction - 
% Executes recursively 'int' times 
% 
/myfunction { 
    dup ==   % Print out the current 'int' just to show we're doing something 
    1 sub   % decrement 'int' by 1 
    dup 0 gt   % copy 'int' and test to see if its 0 
    {    % not 0, so recurse, the copy on the stack is the new 'int' 
    myfunction % execute recursion 
    } { 
    pop   % The copy of 'int' was 0,so remove the copy from the stack 
    } ifelse 
} bind def 

5 myfunction 

Или вы можете просто использовать цикл для выполнения кода кода 5 раз.

0
/go 
{ 
    /cnt { 1 add dup == } def 
    0 
    { cnt } loop 
} def 

% start by calling go 
go 

простой бесконечный счетчик, который вы должны начать

Смежные вопросы