Non so proprio se questo sia il posto giusto per postare ...ma non ho trovato un forum specifico per questo tipo di linguaggio ma spero comunque di ricevere una risposta.




Allora sto cercando di programmare (per scopi didattici) nel linguaggio drscheme

Sono arrivato a trattare la ricorsione sulle funzioni

riesco a capire il procedimento utilizzato nel caso in cui vi sia ricorsione infatti riesco a capire perfettamente come calcolare il numero fattoriale di un numero n e comunque funzioni simili.

-oggi sono arrivato ad una funzione che mi chiede di calcolare il massimo comun divisore tra due numeri

ho la soluzione ma non riesco a capire come cavolo funzioni realmente

allora la funzione e' questa :

(define (mcd n , m) : prende due naturali in input e restiutisce il mcd

codice:
(define (mcd n m)
             (cond
                [(= m 0) n)          ---> se m = 0 allora mcd = n;
                [else (mcd  m (remainder n m))]   --->altrimenti mcd = mcd (m , (resto della divisione m/n)
Qualcuno puo spiegarmi come fa a funzionare?


Grazie