Lisp/Numeri: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
scorporo da Lisp
 
m Update syntaxhighlight tags - remove use of deprecated <source> tags
 
Riga 2:
Il Lisp tratta in numeri solo quando li valuta nella funzione ''eval'' (da ''eval''uate, valutare) per il resto restano entità astratte senza un contenuto formale di tipo. Si possono mettere insieme numeri di notazione diversa ed eseguire calcoli tra di loro, si possono creare funzioni che calcolano in modo ricorsivo e presentano la soluzione. In Lisp è stato progettato Mathlab il programma più evoluto di problem solving. Il Lisp per il suo polimorfismo dei tipi consente elaborazioni complesse di problemi matematici e rappresentazione grafiche dei risultati.<br />
Operazioni semplici di addizioni di una lista di elementi numerici.
<sourcesyntaxhighlight lang=lisp> > (+ 1 4 6 7)
18</sourcesyntaxhighlight>
Operazioni su più elementi della lista con priorità date dalle parentesi
<sourcesyntaxhighlight lang=lisp>> (* (/ 7 6 ) (+ 4 (* 4 6)))
98/3</sourcesyntaxhighlight>
Come possiamo notare il sistema ha variato la notazione per introduzione di una frazione (sette sesti)
<sourcesyntaxhighlight lang=lisp> > (/ 1 2)
1/2</sourcesyntaxhighlight>
Il meccanismo di calcolo ed il risultato sono perfettamente controllabili dal Lisp
<sourcesyntaxhighlight lang=lisp> > (* (/ 1 2 ) 6)</sourcesyntaxhighlight>
 
Definiamo una semplice funzione per calcolare il quadrato
<sourcesyntaxhighlight lang=lisp> > (defun pow2 (a)
(* a a))</sourcesyntaxhighlight>
Ora definiamo la funzione per calcolare il cubo
<sourcesyntaxhighlight lang=lisp> > (defun pow3 (a)
(* a (pow2 a)))
> (pow2 2)
4
> (pow3 2)
8</sourcesyntaxhighlight>
 
Con questo sistema si possono creare funzioni per conversioni metriche ad es convertire metri in pollici
 
<sourcesyntaxhighlight lang=lisp> > (defun mt2inch ( m )
(/ m 0.0254))
> (mt2inch .12716523)
5.006505</sourcesyntaxhighlight>
 
Per calcolare funzioni complesse è un valido strumento interattivo adatto a trattare matrici o risolvere sistemi matematicamente complessi. Un esempio di utilizzo del lisp per la soluzione di equazioni metematiche e messa in grafica delle funzioni è riconducibile allo sviluppo di prodotti come [http://maxima.sourceforge.net/ Maxima] derivato dallo sviluppo di Macsyma iniziato al MIT negli anni 80. Un Tutorial in italiano di maxima lo trovate [http://davbucci.chez-alice.fr/index.php?argument=matematica/maxima/maxima.inc&language=Italiano qui]