Funkcijų skaičiavimas
Taškai: 9
Bebro kompiuteris apdoroja informaciją tik keletu operacijų:
• (R f (x1,x2, … xn)) pateikia rezultatą x1 f x2 f … f xn
(f yra funkcija, o xi – bet kurie skaičiai). Pavyzdžiui: (R + (1, 2, 3, 4)) pateikia 1 + 2 + 3 + 4, t.y. 10.
• (M f (x2 ... xn)) pateikia rezultatą (f(x1), f(x2), … f(xn))
(f yra funkcija, o xi – bet kurie skaičiai).
Pavyzdžiui, jei q(x) = -x, tada (M q (1, 2, 3, 4)) pateikia rezultatą (-1, -2, -3, -4).
Kompiuteris gali vartoti bet kurias kitas funkcijas.
Pavyzdžiui, imkime t(x) = 3x + 2, tada (M t (1, 2, 3)) pateiks rezultatą (5, 8, 11).
Tarkime: t(x) = 3x + 2 ir q(x) = -x.
Kokia reikšmę gausime, atlikę šią operaciją:
(R + (R + (M t (0, 2, 4))) (R + (M q (M t (3, 5)))))
A. | 7 | B. | 0 | C. | -7 | D. | -4 |
Šis uždavinys paaiškina idėją, kaip funkcija taikoma reikšmių aibei ir kaip atliekant operacijas mažinamas reikšmių skaičius, kol gaunamas rezultatas. Funkcijų įdėjimas viena į kitą ir jų reikšmių aibės mažinimas – pagrindiniai funkcinio programavimo konceptai. Pavyzdžiui, siekiate rasti aukščiausią užduočių įvertinimą. Vienas iš būdų tai formalizuoti yra mažinti kiekvienos eilutės reikšmes (suskaičiuojant užduočių įvertinimų sumas) ir tuomet taikyti maksimumo funkciją. Šios dvi funkcijos taikomos viena po kitos ir taip gaunamas reikiamas rezultatas.
Reikšminiai žodžiai: funkcija, mažinimas, informacijos apdorojimas.
Tarpinių skaičiavimų rezultatai apjungiami ir gaunamas galutinis funkcijų taikymo rezultatas (paryškintoji dalis reikalinga kitai eilutei gauti):
(R + (R + (M t (0, 2, 4))) (R + (M q (M t (3, 5)))))
⇒ (R + (R + (2, 8, 14)) (R + (M q (11, 17))))
⇒(R + 24 (R + (-11, -17)))
⇒ (R + 24 -28)
⇒ -4