Mettiamo una pausa alle lezioni per mostrare un elenco piuttosto esaustivo delle funzioni di utilità generale che possiamo richiamare durante la programmazione.
Le funzioni, come abbiamo già visto, sono tutte in notazione prefissa. Inoltre, a differenza di altri linguaggi, Scheme possiede molte funzioni matematiche, anche complesse, di default, senza dover importare nessun modulo o libreria.
Un altra differenza con le funzioni di altri linguaggi consiste nel poter calcolare direttamente un gran numero di argomenti. Queste funzioni hanno quindi un numero di parametri potenzialmente infinito. La funzione “addizione”, per esempio, prende un numero qualunque di parametri e li sommatutti mentre con la notazione ordinaria (a + b) possiamo sommare soltanto due elementi alla volta.
Vediamo quindi una prima lista di funzioni. Sono funzioni numeriche ovvero che lavorano con numeri.
Funzioni | Risultato |
---|---|
(+ arg1 arg2 ... argN) |
Somma tutti gli argomenti. |
(- arg1 arg2 ... argN) |
Sottrae ad arg1 tutti gli argomenti. |
(* arg1 arg2 ... argN) |
Moltiplica tutti gli argomenti. |
(/ arg1 arg2 arg3... argN) |
Divide ad arg1 tutti gli argomenti. |
(log arg) |
Logaritmo naturale di arg |
(exp arg) |
Esponenziale di arg |
(sin arg) |
Seno di arg |
(cos arg) |
Coseno di arg |
(tan arg) |
Tangente di arg |
(asin arg) |
Arcoseno di arg |
(acos arg) |
Arcocoseno di arg |
(atan arg) |
Arcotangente di arg |
(sqrt arg) |
Radice quadrata arg |
(expt base potenza) |
Eleva la base alla potenza |
(abs arg) |
Valore assoluto di arg |
(quotient arg1 arg2) |
Restituisce la parte intera di arg1 / arg2 |
(modulo arg1 arg2) |
Resto della divisione |
(ceiling arg) |
Approssimazione della parte intera per eccesso |
(floor arg) |
Approssimazione della parte intera per difetto |
(round arg) |
Approssimazione generica di arg |
(truncate arg) |
Troncamento di arg |
(max arg1 ... argN) |
Valore massimo tra arg1 e argN |
(min arg1 ... argN) |
Valore minimo tra arg1 e argN |
(gcd arg1 ... argN) |
Massimo comune divisore tra arg1..e .. argN |
(lcd arg1 ... argN) |
Minimo comune multiplo tra arg1.. e .. argN |
(numerator arg) |
Numeratore di arg |
(denominator arg) |
Denominatore di arg |
Inoltre sono disponibili queste funzioni di utilità:
Funzioni | Domanda |
---|---|
(zero? numero) |
Il numero è uno zero? |
(positive? numero) |
Il numero è positivo? |
(negative? numero) |
Il numero è negativo? |
(odd? numero) |
Il numero è dispari? |
(even? numero) |
Il numero è pari? |
Queste tabelle sono state tratte da Wikipedia con qualche correzione e ampliamento personale.