![]()
Než začnete programovat v AutoLISPu je důležité si uvědomit, že veškeré programy v AutoLISPu mají tvar volání funkcí. Také každý výraz v AutoLISPu je ve své podstatě volání funkce s následujícím tvarem:

Příklady volání funkce předešlé funkce:
              (jm_funkce povinný_argument)
              (jm_funkce povinný_argument volitelný_argument)
![]()
Když již víme podstatu syntaxe programu v AutoLISPu, ukážeme si definování uživatelské funkce. Pro definování funkce použijeme příkaz AutoLISPu defun.
              (defun sym ([arguments] [/ variables...]) expr...)
![]()
Jako první příklad uvedeme velice známou funkci - AhojSvěte. Jedná se o nejjednodušší funkci, která zobrazí dialogový box (tzv. alert box) s pozdravem:
              (defun AhojSvetePrvni()
                (alert "Nazdárek uživatelé! \njak se Vám líbím!")
              )
Z příkladu je patrné, že nová funkce nepřebírá žádné parametry. V kódu funkce si všimněte znaku zpětného lomítka v zobrazovaném řetězci. Znak \n signalizuje AutoLISPu, aby následující text zobrazil na nový řádek.
Pokud si budete chtít tuto funkci spustit, stačí v AutoCADu načíst a spustit soubor AhojSvetePrvni1.lsp. Pokud nevíte jak
![]()
Další příklad ukáže způsob předání výsledku z funkce. Vytvoříme funkci, která po svém zavolání vypočítá druhou mocninu argumentu:
              (defun mocnina (cislo)
                (setq cislo (* cislo cislo))
              )
Použití naší funkce:
              (setq mocnina mocnina(8))
Aby bylo možné volat funkci s argumentem, musíme v definici funkce uvést v závorkách proměnnou, do které se vstupní argumenty předají. V našem příkladu se jedná o proměnnou cislo. Pokud byste potřebovali použít více vstupních argumentů stačí do závorek napsat více proměnných oddělených mezerami.
Pokud byste potřebovali předat více argumentů z funkce musíte použít proměnnou typu seznam.
V příkladu je dobré dále si všimnout použití operátoru *. Jak jste si jistě všimli AutoLISP používá prefixovou notaci operací:
              výsledek = operátor argument1 argumen2
Více o aritmetických operátorech v AutoLISPu se dozvíte v lekci Používání proměnných a operátorů v AutoLISPu.
![]()
V prostředí AutoCADu máme možnost definovat funkci tak, aby mohla být jednoduše vyvolána v AutoCADu jako příkaz. Nemusí se v AutoCADu volat v závorkách. Aby to bylo možné, stačí před jméno funkce uvést prefix c:jm_funkce. Malé písmeno c: značí command.
(defun c:AhojSveteDruhy () (alert "Dobrý den! \nJak se Vám daří!") )
Po nahrání souboru s výše uvedenou funkcí stačí v AutoCADu napsat na příkazový řádek pouze AhojSvete a funkce je spuštěna - zobrazí se dialog s pozdravem. Zdrojový kód funkce je možné nahrát v souboru AhojSvete2.lsp.
Definice uživatelské funkce umožňuje ještě jednu velice důležitou věc. V definici funkce můžete určit, které proměnné budou pouze lokální = budou viditelné pouze v těle funkce.
    (defun jméno funkce (/ lokální_proměnná1 lokální_proměnná2 ...)
    (defun lokalni (/cislo) 
      (setq cislo 10)
    )
V příkladu je definována proměnná cislo, která je lokální = je možné použít ji pouze ve funkci lokalni. Pokus o získání hodnoty z proměnné cislo mimo funkci lokální vyvolá chybu. Spustíte-li tuto funkci a do okna konzole napíšete příkaz !cislo, konzole zobrazí hlášení, že funkci cislo nezná, proměnná cislo mimo funkci lokalní nelze použít. Zdrojový kód funkce je možné nahrát v souboru Lokalni.lsp.
![]()