Metaprogramming: Difference between revisions

Content deleted Content added
Rahul (talk | contribs)
Rahul (talk | contribs)
Line 57: Line 57:
{{libheader|initlib}}
{{libheader|initlib}}
<lang postscript>
<lang postscript>

/ift {
/ift {
4 dict begin
4 dict begin
[/.if /.then] let*
[/.if /.then] let*
count array astore /.stack exch def
count array astore /.stack exch def
Line 79: Line 80:
>| 2 dup 1 gt {=} ift
>| 2 dup 1 gt {=} ift
2
2
</lang>

Note that even the let expression was implemented using meta programming
<lang postscript>
/let* {reverse {exch def} forall}.
</lang>
</lang>