damesova

Абстракции чрез функции (Haskell)

Mar 4th, 2025
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. Абстракции чрез функции.
  2. (2 уч.ч.)
  3.  
  4. 1. Същност на абстракцията в програмирането.
  5.  
  6. Абстракцията е ключова концепция в програмирането. Чрез нея се постига по-голяма независимост, като се абстрахираме от конкретиката и се фокусираме върху важните неща.
  7. В C# абстракция се постига чрез абстрактни класове и интерфейси.
  8.  
  9. 2. Абстракцията в Haskell.
  10. В Haskell абстракция се постига чрез функциите.
  11. Ако функция a приема като параметри b, c и друга функция func и връща резултат извиканата функция func с параметри b и c, то резултатът всеки път ще е различен. Т.е. резултатът зависи от подадената функция func, като единственото условие е тя да приема същия брой параметри, които й се подават в тялото на а.
  12. Пример:
  13. abstThroughFunction a b func = func a b
  14. firstFunc a b = (a * b)
  15. secondFunc a b = (a + b)
  16. thirdFunc a b = (a - b)
  17.  
  18. main = do
  19. print(abstThroughFunction 10 10 firstFunc)
  20. print(abstThroughFunction 10 10 secondFunc)
  21. print(abstThroughFunction 10 10 thirdFunc)
  22.  
  23.  
  24. Обяснение:
  25. В дефиницията на главната функция се изискват три параметъра, последният от които е функция. Тази функция приема предхждащите я параметри и извършва операциите, които всяка от вариациите й имплементира. Всяко от извикванията получава различна функция от посочения патърн и връща различен резултат. Това прави програмата динамична и с повече възможности.
  26. В зависимост от функцията резултатът ще е различен при едни и същи параметри (а = 10 и b = 10). Това много прилича на делегатите в C#.
  27.  
Add Comment
Please, Sign In to add comment