Programación funcional
A Programación funcional é un paradigma de programación declarativa baseado na utilización de funcións matemáticas.
Historia
[editar | editar a fonte]As súas orixes remóntanse ao cálculo lambda (ou -cálculo), unha teoría matemática elaborada por Alonzo Church como apoio aos seus estudos sobre computabilidade. Un linguaxe funcional é, a grandes liñas, un sintax sugar do Cálculo Lambda.
Utilidade
[editar | editar a fonte]O obxectivo é conseguir linguaxes expresivas e matematicamente elegantes, nos que non sexa necesario baixar ao nivel da máquina para describir o proceso levado a cabo polo programa, e evitando o concepto de estado do cómputo. A secuencia de computaciones levadas a cabo polo programa rexeríase única e exclusivamente pola reescritura de definicións máis amplas a outras cada vez máis concretas e definidas, usando o que se denominan "definicións dirixidas".
Características
[editar | editar a fonte]Os programas escritos nunha linguaxe funcional están constituídos unicamente por definicións de funcións, entendendo estas non como subprogramas clásicos dunha linguaxe imperativa, senón como funcións puramente matemáticas, nas que se verifican certas propiedades como a transparencia referencial (o significado dunha expresión depende unicamente do significado dos seus subexpresións), e xa que logo, a carencia total de efectos laterais.
Outras características propias destas linguaxes son a non existencia de asignacións de variables e a falta de construcións estruturadas como a secuencia ou a iteración (o que obriga na práctica a que todas as repeticións de instrucións sexan levadas a cabo por medio de funcións recursivas).
Existen dúas grandes categorías de linguaxes funcionais: as funcionais puras e as híbridas. A diferenza entre ambos estriba en que as linguaxes funcionais híbridas son menos dogmáticas que as puras, ao admitir conceptos tomados das linguaxes imperativas, como as secuencias de instrucións ou a asignación de variables. En contraste, as linguaxes funcionais puras teñen unha maior potencia expresiva, conservando á vez a súa transparencia referencial, algo que non se cumpre sempre cunha linguaxe funcional híbrida.
Entre as linguaxes funcionais puras, cabe destacar a Haskell e Miranda. As linguaxes funcionais híbridas máis coñecidas son Scala, Lisp, Scheme, Ocaml e Standard ML (estas dúas últimas, descendentes da linguaxe ML).