در برنامه نویسی تابعی مراحل اجرای برنامه در قالب ترکیب توابع و فراخوانی آنها توسط برنامه نویس بیان می شود. برخلاف زبان های Imperative، در زبان های Functional توابع نوع داده ای اولیه هستند و این بدین معنی است که در زبان های Functional ما می توانیم از توابع به عنوان مقادیر )مانند متغیرها در زبان های Imperative( استفاده کنیم و آنها را به عنوان پارامتر برای یک تابع دیگر ارسال کنیم و یا به عنوان مقدار بازگشتی یک تابع از آنها استفاده کنیم.زبان های Lisp، Wolfram ،Clojure ،Scheme ،APL ،IPLو #F از جمله زبان های برنامه نویسی تابعی هستند.