Metaprogramming: Difference between revisions

Content added Content deleted
Line 912: Line 912:
; instead of
; instead of
(setq sum (lambda (a b) (+ a b)))
(setq sum (lambda (a b) (+ a b)))
</lang>

=={{header|OxygenBasic}}==

OxygenBasic supports metalanguage useable with various macro formats.

Unlike the C preprocessor, OxygenBasic metalanguage is resolved inline.

<lang>

'EQUATES

% half 0.5
$ title "My Metaprogram"

'CONDITIONAL BLOCKS

#ifdef
#elseif
#else
#endif

'MACROS

'msdos-like
def sum
%1 + %2
end def

'C-like
#define sum(a,b) a + b

'native
macro sum(a,b)
a + b
end macro

'native macro functions
macro sum int(r,a,b)
r=a+b
end macro

</lang>
</lang>