Dość analogiczny program w języku python wersji 3.0: from os import system clay = open( "adam.py", "w" ) clay.write( "print( \"Madam, i'm Adam.\" )" ) clay.close() system("python3.0 adam.py") Jeśli umieścimy powyższy kod w pliku i uruchomimy go, to program wygeneruje plik/program adam.py i uruchomi go, a ten wypisze "Madam, i'm Adam.". Python posiada kilka funkcji ułatwiających metaprogramowanie np. exec() czy execFile().
Poniżej analogiczny kod w scheme: (define adam "adam.scm") (define clay (open-output-file adam))
(display "(display " clay) (write "Madam, i'm Adam." clay) (display ")" clay)
(close-output-port clay)
(load adam)
Makra lispowe
Dialekty języka Lisp, takie jak Scheme, Clojure czy Common Lisp, jako języki symboliczne, obsługują tzw. makra składniowe. Kod źródłowy zorganizowany jest w nich w postaci tzw. S-wyrażeń i może być po wczytaniu do pamięci zmieniany tak samo, jak inne dane, z użyciem funkcji operujących na jednokierunkowych listach, którymi reprezentowane są złożone S-wyrażenia.
Przykład makra when w Scheme:
(define-macro (when cond . body) `(if ,cond (begin ,@body)))