Home > Informatica, Programmazione, Scheme > Scheme – Ricorsione di coda (min, max) –

Scheme – Ricorsione di coda (min, max) –

8 agosto 2010 - 4.877 Volte visto Lascia un commento Vai ai commenti
1 Star2 Stars3 Stars4 Stars5 Stars (Ancora nessun voto)
Loading...

ATTENZIONE:
AVVISO! Le informazioni di questo post potrebbero non essere più valide in quanto non aggiornate. Usa i commenti per contribuire a tenere il post aggiornato.

ULTIMA REVISIONE DEL POST: 24/04/2014


Definisci in Scheme un programma su una procedura ricorsiva di coda, più eventuali procedure non ricorsive, per trovare minimo e massimo da una lista.

(define mix
  (lambda (m n)
    (if (< m n)
        m
        n)
    ))

(define max
  (lambda (m n)
    (if (> m n)
        m
        n)
    ))

(define f
  (lambda (txt)
    (f-tr txt (car txt) (car txt))
    ))

(define f-tr
  (lambda (t m n)
    (if (null?  (cdr t)) (list m n)
    (f-tr (cdr t) (mix m (mix (car t) (cadr t))) (man n (man (car t) (cadr t))))
    )))

(f '(2 3 4 1 5 4 3 7 9 10))

Altra soluzione assai più esigua che utilizza molto l’ingegno ;)

(define min-max
  (lambda (nums)
    (min-max-tr (car nums) (car nums) (cdr nums))
    ))

(define min-max-tr
  (lambda (min max nums)
    (if (null? nums)
        (list min max)
        (min-max-tr
         (if (< (car nums) min) (car nums) min)
         (if (> (car nums) max) (car nums) max)
         (cdr nums))
        )))
  1. Nessun commento ancora...


NOTE SUI COMMENTI:

Se non avete mai scritto nulla su questo blog, sappiate che il vostro primo commento dovrà essere approvato manualmente dall'amministratore e quindi non comparirà subito sul sito.
Questo sito usa gli Avatar.
E' possibile usare dei tag HTML nel testo del commento, ma solamente quelli validi come XHTML "Strict" verranno accettati, quindi il risultato potrebbe anche essere un po' diverso dal previsto... nel dubbio, usate il testo semplice!
L'avviso di nuovi commenti è completamente automatizzato e nessuno degli indirizzi e-mail verrà fornito a terzi.
La vostra e-mail, che comunque resterà sempre riservata, serve anche per il conteggio del totale dei vostri commenti e per inviarvi, se ne fate richiesta soluzioni ai problemi o ulteriori informazioni nel totale rispetto del D.Lgs 196/2003.