Funkciaj lingvoj: Malsamoj inter versioj
[nekontrolita versio] | [nekontrolita versio] |
Enhavo forigita Enhavo aldonita
Neko244 (diskuto | kontribuoj) e Korektis gramatikon |
Umberto (diskuto | kontribuoj) gramatiko, leksiko |
||
Linio 1:
'''Funkciaj lingvoj''' estas speco de [[komputillingvoj]], kiuj havas
apartan programadan stilon
ordonemaj programoj, kiuj estas
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
por tradukiloj, kiuj povas matematike rezoni pri la programo por pli
inteligente traduki ĝin ol
lingvoj. Kutima funkcio plenumita de tradukiloj por funkciaj lingvoj
estas kontroli erarojn. Funkciaj lingvoj pli facile ebligas la
Linio 22:
==== Enkonduko al funkciaj lingvoj ====
Iuj, kiuj uzis [[sterntabelo|sterntabelon]], jam spertas pri funkcia
programado. En sterntabelo
laŭ la valoroj de aliaj ĉeloj.
ne kiel komputi ĝin. Ekzemple: oni ne specifas la ordon, laŭ kiu la
ĉeloj estu komputitaj; anstataŭe,
komputos la ĉelojn laŭ la ordo, kiu respektas la dependecojn inter la
ĉeloj. Oni ne specifas, kiel la sterntabulo asignu memoron;
anstataŭe,
kaj
oni specifas la valoron de ĉelo per esprimo (kies subpartoj povas
esti komputitaj laŭ ajna ordo), anstataŭ
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
Linio 43:
distingaĵo de funkciaj komputillingvoj.
Alia bone konata preskaŭ
datumbaz-demanda lingvo]] (SQL). Demando en SQL estas esprimo kun
projekcioj,
estu komputita, sen specifi, kiel ĝi estu komputita. Tiu eco de la
demando permesas, ke ĝi povas esti komputita laŭ iu ajn konvena ordo.
Realigoj de SQL ofte amplekse
aliaj aferoj,
esprimon.
Sterntabuloj kaj SQL estas tre specialigitaj lingvoj.
lingvoj prenas la samajn ideojn kaj
ĝeneralcela programado.
Linio 60:
''Mallongeco'': Funkciaj programoj emas esti pli koncizaj ol ordonemaj.
''Facileco de kompreno'': Funkciaj programoj ofte estas pli
Tio povas esti
aŭ ŝanĝi ion en programo ne originale verkita de ili, aŭ se la
originala aŭtoro forlasis la programon kaj post longe volas
mem reveni kaj facile rememori, kion li verkis.
''Neniu nekropsio'': La plej multaj funkciaj lingvoj estas [[tipizemaj
lingvoj]]. Tipkontrolado ĉe traduktempo nuligas grandan aron de
tiperaroj, kiuj
eblas en tipizemaj lingvoj, ekzemple, trakti entjeron kiel referencon.
''Reuzado de programpecoj'': Funkciaj lingvoj ofte enhavas homonimigon
de operacisimboloj. Tiel la sama funkcio povas funkcii por multaj
tipoj, sen
''Abstrakteco'': Per funkciaj lingvoj la programisto povas esprimi la
plej
lingvoj estas [[
sendependajn partojn de la programo por
partoj, sen esti konfuzita per la interfunkciado de la tuto.
''Nur tiom kiom necesas'': Funkciaj lingvoj povas esti ''nestriktaj''.
Tio signifas, ke la komputilo komputas nur tiom, kiom necesas por atingi
la rezulton de la programo. Kaj tio permesas pli
ĝeneralajn)
''Enkonstruita memor-direktado'': En lingvoj
respondecas pri la asignado de memoro. En funkciaj lingvoj, tiujn decidojn
prizorgas la [[tradukilo]] kaj la [[rultemp-sistemo]].
Tiu ĉi listo ne celas konvinki la leganton, ke funkciaj programoj
estas ĉiam la plej taŭgaj lingvoj. Povas esti situacioj, kiam aliaj
lingvoj,
[[kategorio:funkciaj programlingvoj]]
|