Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Абстракции чрез функции.
- (2 уч.ч.)
- 1. Същност на абстракцията в програмирането.
- Абстракцията е ключова концепция в програмирането. Чрез нея се постига по-голяма независимост, като се абстрахираме от конкретиката и се фокусираме върху важните неща.
- В C# абстракция се постига чрез абстрактни класове и интерфейси.
- 2. Абстракцията в Haskell.
- В Haskell абстракция се постига чрез функциите.
- Ако функция a приема като параметри b, c и друга функция func и връща резултат извиканата функция func с параметри b и c, то резултатът всеки път ще е различен. Т.е. резултатът зависи от подадената функция func, като единственото условие е тя да приема същия брой параметри, които й се подават в тялото на а.
- Пример:
- abstThroughFunction a b func = func a b
- firstFunc a b = (a * b)
- secondFunc a b = (a + b)
- thirdFunc a b = (a - b)
- main = do
- print(abstThroughFunction 10 10 firstFunc)
- print(abstThroughFunction 10 10 secondFunc)
- print(abstThroughFunction 10 10 thirdFunc)
- Обяснение:
- В дефиницията на главната функция се изискват три параметъра, последният от които е функция. Тази функция приема предхждащите я параметри и извършва операциите, които всяка от вариациите й имплементира. Всяко от извикванията получава различна функция от посочения патърн и връща различен резултат. Това прави програмата динамична и с повече възможности.
- В зависимост от функцията резултатът ще е различен при едни и същи параметри (а = 10 и b = 10). Това много прилича на делегатите в C#.
Add Comment
Please, Sign In to add comment