Funkciaj lingvoj - Vikipedio
Funkciaj lingvoj
Funkciaj lingvoj estas speco de komputillingvoj, kiuj havas apartan programadan stilon kompare al ordonemaj lingvoj. Kontraste kun ordonemaj programoj, kiuj estas vicoj de ordonoj plenumendaj unu post la alia, funkcia programo estas unuopa esprimo (aŭ formulo), kiun oni plenumas per komputi la esprimon.
Do ne estu surprizo, ke funkciaj lingvoj estas bazitaj de matematiko. Ekzemple, la funkciaj lingvoj Haskell kaj Lisp baziĝas sur la Lambdokalkulo. Kaj tiu bazo estas utila por tradukiloj, kiuj povas matematike rezoni pri la programo por pli inteligente traduki ĝin ol kutime povas tradukiloj por ordonemaj lingvoj. Kutima funkcio plenumita de tradukiloj por funkciaj lingvoj estas kontroli erarojn. Funkciaj lingvoj pli facile ebligas la trovadon de eraroj antaŭ ol ruli la programon. Do multaj rultempaj eraroj en ordonemaj programoj estas malpli seriozaj traduktempaj eraroj en funkciaj lingvoj.
Lisp, Scheme, Haskell, ML, Caml, Clean, Erlang
Enkonduko al funkciaj lingvoj[redakti | redakti fonton]
Iuj, kiuj uzis sterntabelon, jam spertas pri funkcia programado. En sterntabelo oni specifas la valorojn de ĉiu ĉelo laŭ la valoroj de aliaj ĉeloj. Gravas, kio estas komputota, ne kiel komputi ĝin. Ekzemple: oni ne specifas la ordon, laŭ kiu la ĉeloj estu komputitaj; anstataŭe, oni akceptas, ke la sterntabelo komputos la ĉelojn laŭ la ordo, kiu respektas la dependecojn inter la ĉeloj. Oni ne specifas, kiel la sterntabulo asignu memoron; anstataŭe, oni atendas, ke ĝi montru al ni senliman tabulon da ĉeloj kaj asignu nur la memoron necesan por la ĉeloj uzataj. Plejparte, oni specifas la valoron de ĉelo per esprimo (kies subpartoj povas esti komputitaj laŭ ajna ordo), anstataŭ vico de ordonoj.
Interesa rezulto de la nespecifita ordo de kalkulado estas, ke la koncepto de valorizo estas ne utila. Tio forte kontrastas kun tradiciaj ordonemaj lingvoj, en kiuj valorizo estas esenca koncepto kaj en kiuj la ordo de la ordonoj estas gravega al la signifo de la programo.
La celo al la altnivela "kio" anstataŭ malaltnivela "kiel" estas distingaĵo de funkciaj komputillingvoj.
Alia bone konata preskaŭ-funkcia lingvo estas la [[norma datumb