Re: Programmazione funzionale

KJKHyperion <[email protected]> Fri, 14 Jul 2006 22:14:22 +0200
Newsgroups gmane.comp.security.italian.devel
Organization ReactOS project
Message-ID <[email protected]>
Carlo Bertoldi wrote:
> S=EC, ma nel paper che ho citato, si parla soprattutto di programmazion=
e funzionale lato web, per sostituire php ad esempio.
>  =20
aaah, =E8 *quel* paper :-) l'unico in circolazione :-) Comunque s=EC, da =
un=20
punto di vista puramente tecnico, come linguaggio web il Lisp sarebbe=20
perfetto. Se fai caso, la maggior parte delle web application sono=20
basate su un concetto di tabelle di dati che applicate a dei template=20
producono HTML, che poi =E8 una delle tante forme possibili del modello=20
Model-View-Controller. Se per PHP, ASP.Net, ecc. c'=E8 bisogno di un=20
secondo linguaggio in cui scrivere il template (in genere un qualche=20
dialetto XML), con Lisp avresti il vantaggio di poter scrivere template=20
potentissimi nello stesso linguaggio in cui scrivi la business logic
> Certamente la programmazione funzionale non =E8 una novit=E0, ed appunt=
o per questo mi domando quale sia la sua reale diffusione, soprattutto ne=
ll'ambito sopra citato. Se mi guardo intorno, vedo che la maggior parte d=
el software =E8 scritta utilizzando un linguaggio imperativo, a parte il =
caso lampante di Emacs.
non del tutto vero. Una buona parte del software C++ in circolazione =E8 =

scritto usando (in parte) il paradigma funzionale, grazie ai potenti=20
strumenti di metaprogrammazione che il linguaggio mette a disposizione.=20
E' impossibile per=F2 scrivere un intero programma in C++ usando il=20
paradigma funzionale, a causa di limitazioni del linguaggio e/o del=20
compilatore (ma ti consiglio, se "pratichi" il C++, di dare un'occhiata=20
alla libreria Boost, contiene librerie di funzioni nientemeno che=20
fantascientifiche, e dimostra che cose che riterresti "impossibili" in=20
C++ in realt=E0 sono solo difficili)

E c'=E8 il problema che mentre in Lisp il testo del programma =E8=20
esprimibile in tipi di dato nativi di Lisp (nello specifico, delle=20
liste), ed =E8 scritto nella stessa sintassi in cui quei tipi vengono=20
dichiarati, permettendo di usare lo stesso linguaggio per scrivere il=20
codice vero e proprio e il codice di preprocessing, addirittura=20
manipolando la sintassi, introducendo nuove parole chiave (ad esempio un =

nuovo tipo di loop), ecc., il C++ ha una sintassi estremamente pi=F9=20
complessa, e inoltre la sua fase di preprocessing =E8 gestita da un=20
linguaggio secondario molto, ma molto meno versatile

________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List