LISP - Makro
Makro memungkinkan Anda memperluas sintaks LISP standar.
Secara teknis, makro adalah fungsi yang menggunakan ekspresi s sebagai argumen dan mengembalikan formulir LISP, yang kemudian dievaluasi.
Mendefinisikan Makro
Di LISP, makro bernama ditentukan menggunakan makro lain bernama defmacro. Sintaks untuk mendefinisikan makro adalah -
(defmacro macro-name (parameter-list))
"Optional documentation string."
body-form
Definisi makro terdiri dari nama makro, daftar parameter, string dokumentasi opsional, dan badan ekspresi Lisp yang menentukan pekerjaan yang akan dilakukan oleh makro.
Contoh
Mari kita tulis makro sederhana bernama setTo10, yang akan mengambil angka dan menyetel nilainya menjadi 10.
Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.
(defmacro setTo10(num)
(setq num 10)(print num))
(setq x 25)
(print x)
(setTo10 x)
Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, LISP segera menjalankannya dan hasil yang dikembalikan adalah -
25
10