Funkcja (metoda, podprogram, procedura) – to wydzielony fragment (blok) kodu, służący do wykonywania określonej czynności.
W zależności od języka programowania, jaki zostanie użyty struktura funkcji, może się nieznacznie różnić.
Funkcja powinna mieć nazwę (niektóre języki programowania pozwalają zdefiniować funkcję bez nazwy), która będzie wykorzystywana podczas jej wywołania oraz ciało, w którym umieszcza się instrukcję, czyli wszystko to co chcemy aby dana funkcja robiła (Istnieją, również przypadki, w których funkcja nie posiada ciała np. metoda abstrakcyjna w Javie).
Opcjonalnie możliwe jest podanie parametrów, które następnie można wykorzystać i przetworzyć w ciele funkcji.
Funkcja może zwracać wartość lub wykonywać pewne działania.
Przykładowy zapis funkcji w Javie i C#
typ nazwa(argumenty) { ciało funkcji }
Niektóre funkcje są już wbudowane i dostarczane przez sam język, inne natomiast sami tworzymy, decydując o tym, za co będą odpowiedzialne.
Wywołanie funkcji powoduje wykonanie zawartego w niej kodu.
Korzyści wynikające z funkcji:
- Możliwość wykorzystania tego samego kodu w wielu miejscach
- Większa czytelność kodu
- Szybsze programowanie
- Łatwiejsze wyszukiwanie błędów
Możliwe jest budowanie całych aplikacji zawierających tylko funkcje. Języki programowania, które głównie wykorzystują funkcje, nazywane są funkcjonalnymi językami programowania. Przykładem takiego języka jest Haskell. Tworzy się w nim oprogramowanie, budując bloki kodu, które wykonują określone zadania.