summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/lisp-on-tex/examples/rocket.tex
blob: c4ed29648fdae955dfe59ce6473ba242f5edec60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
\documentclass{article}
\usepackage{lisp-on-tex}
\lispinterp{%
%rocket body
(\define \rocket
  (\letM ((\count :11))
    (\lambda ()
      (\begin
        (\setB \count (\- \count :1))
        (\lispif (\< \count :0)
          (\texprint '{\small fired...}\\')
          (\lispif (\= \count :0)
            (\texprint '{\Large FIRE!}\\')
            (\texprint (\concat 'count ' (\intTOstring \count) '...\\'))))))))
(\define \MAX :15)
%LOOP function
(\define \loop
  (\lambda (\n)
    (\lispif (\= \n \MAX)
      ()
      (\begin (\rocket) (\loop (\+ \n :1))))))
}
\begin{document}
\noindent\lispinterp{(\loop :0)}
Test done.
\end{document}