Používání funkcí
Předcházející | Kapitola 5. Základy jazyka GEL | Další

## Používání funkcí

Syntaxe:

    NazevFunkce (argument1,argument2,...)

Příklad:

    Factorial(5)
    cos(2*pi)
    gcd(921,317)

Když chcete vyhodnotit funkci, zadejte její název následovaný argumenty v závorkách (pokud nějaké má). Vrátí se výsledek vzniklý za použití argumentů. Počet argumentů se samozřejmě liší funkci od funkce.

Existuje množství zabudovaných funkcí, jako třeba `sin`, `cos` a `tan`. Můžete použít zabudovanou funkci `help` k výpisu dostupných funkcí nebo si přečíst kapitolu 11 – „Seznam funkcí GEL“.

### Dokončování pomocí Tab

Můžete používat klávesu Tab, aby vám Genius dokončoval názvy funkcí. Zkuste napsat prvních pár písmen názvu a zmáčknout `Tab`.

### Názvy funkcí rozlišují velikost písmen

U názvů funkcí se rozlišuje velikost písmen. To znamená, že funkce pojmenované `necoudelat`, `NECOUDELAT` a `NecoUdelat` jsou rozdílné funkce.

### Definování funkcí

Syntaxe:

    function <identifier>(<comma separated arguments>) = <function body>
    <identifier> = (`() = <function body>)

Znak ``` je zpětná uvozovka a je důležitý u anonymních funkcí. Jeho nastavením do názvu proměnné se účinně definuje funkce.

Funkce přebírá buď žádný nebo více argumentů oddělených čárkou a vrací výsledek podle těla funkce. Pro definování vašich vlastních funkcí je hlavním důvodem pohodlí. Jednou z možností je mít sady funkcí definovaných v souborech GEL, které může Genius načíst a ty pak budou k dispozici. Například:

    function addup(a,b,c) = a+b+c

a `addup(1,4,9)` pak bude vracet 14.

### Proměnný seznam argumentů

Když za název posledního argumentu v deklaraci funkce vložíte `...`, dovolí Genius v místě tohoto argumentu zadat libovolný počet argumentů. Pokud není předán žádný argument, pak je tento argument nastaven na `null`. V jiných případech bude vektorem obsahujícím všechny argumenty. Například:

    function f(a,b...) = b

Pak `f(1,2,3)` poskytne `[2,3]`, zatímco `f(1)` poskytne `null`.

### Předávání funkcí funkcím

V aplikaci Genius je možné předat funkci jako argument jiné funkci. To lze udělat buď pomocí „uzlů funkcí“ nebo anonymních funkcí.

Když za název funkce nezadáte závorky, bude funkce vrácena jako „uzel funkce“, namísto toho, aby byla vyhodnocena. Uzel funkce je možné předat jiné funkci. Například:

    function f(a,b) = a(b)+1;
    function b(x) = x*x;
    f(b,2)

Pro předání funkce, která není definována, můžete použít anonymní funkce (viz „Definování funkcí“). Tzn., že můžete předat funkci, aniž byste ji pojmenovali. Syntaxe:

    function(<comma separated arguments>) = <function body>
    `(<comma separated arguments>) = <function body>

Příklad:

    function f(a,b) = a(b)+1;
    f(`(x) = x*x,2)

Vrátí hodnotu 5.

### Operace s funkcemi

Některé funkce dovolují aritmetické operace a některé funkce s jedním argumentem, jako `exp` nebo `ln`, operace s funkcemi. Například

    exp(sin*cos+4)

vrátí funkci, která vezme `x` a vrátí `exp(sin(x)*cos(x)+4)`. To funkčně odpovídá tomu, jako byste napsali

    `(x) = exp(sin(x)*cos(x)+4)

Takováto operace může být výhodná, kdy potřebujete rychle definovat funkci. Například k vytvoření funkce nazvané `f`, která bude provádět operaci jako výše, prostě napište:

    f = exp(sin*cos+4)

Využít se to dá také při vykreslování grafů. Například k vykreslení druhé mocniny sinu zadejte:

    LinePlot(sin^2)

### Varování

Ne všechny funkce je možné použít tímto způsobem. Například, pokud použijete binární operaci, musí funkce přebírat stejný počet argumentů.

Předcházející | Nahoru | Další
Používání proměnných | Domů | Oddělovač