(Dracula è un dilettante) è un dilettante (in Haskell)

Pubblicato: 18 settembre 2009 in Haskell

Volendo un po’ aiutare l’Agente della riscossione a capire in quali pasticci si può mettere con questa sua insistenza ho scritto un programmino in Haskell, l’ho chiamato ndfd (notifica del fallimento della notifica), per spiegarglielo meglio:

ndfd :: [String] -> [String]
ndfd [] = ["notifica (fallita)"]
ndfd x = (map ("notifica del fallimento della " ++) x) ++ ["nuova " ++ head(reverse x)]

Questo programma, caro Agente, è quello che fa per te. Infatti se usiamo:

agente :: Int -> ([String] -> [String]) -> [String]
agente 0 f = f []
agente n f = f (agente (n-1) f)

Succede, per dire, che:

*Main> agente 10 ndfd
["notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica (fallita)","notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della nuova notifica (fallita)","notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della nuova nuova notifica (fallita)","notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della nuova nuova nuova notifica (fallita)","notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della nuova nuova nuova nuova notifica (fallita)","notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della nuova nuova nuova nuova nuova notifica (fallita)","notifica del fallimento della notifica del fallimento della notifica del fallimento della notifica del fallimento della nuova nuova nuova nuova nuova nuova notifica (fallita)","notifica del fallimento della notifica del fallimento della notifica del fallimento della nuova nuova nuova nuova nuova nuova nuova notifica (fallita)","notifica del fallimento della notifica del fallimento della nuova nuova nuova nuova nuova nuova nuova nuova notifica (fallita)","notifica del fallimento della nuova nuova nuova nuova nuova nuova nuova nuova nuova notifica (fallita)","nuova nuova nuova nuova nuova nuova nuova nuova nuova nuova notifica (fallita)"]
*Main> 

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...