برنامه نویسی Functional
دید تابعی به برنامه نویسی
این پارادایم الهام گرفته شده از حساب لامبدا در ریاضیات می باشد. پایه های این دید برنامه نویسی توابع بی نام و عدم Side-Effect توابع هستند.زبان هایی که به طور کامل این دو شرط را رعایت و از آن ها پشتیبانی نمایند را زبان های تابعی خالص گوییم.
در این سبک برنامه نویسی برای رعایت عدم وجود Side-Effect مفهوم "متغیر" بطوری که در زبان های امریه ای وجود دارد، وجود نخواهد داشت و بر خلاف زبان های امریه ای که متغیرها، موجودیت کلاس اول(First-Class Entity) هستند، در زبان های تابعی، توابع این نقش را بازی می کنند.
مفاهیمی مانند میدان دید و ... برای توابع بطور کامل تعریف و پشتیبانی می شوند.
در زبان های تابعی، غیر از این دو ویژگی ویژگی هایی نظیر توابع مرتبه بالاتر ، Curried Functions و ترکیب توابع نیز پشتیبانی می شود.
برنامه نویسی به سبک Recursive در این زبان ها به طور قوی پشتیبانی شده و برنامه نویس به پیروی از آن تشویق می شود.
بسیاری از ساختمان های داده Recursive مانند لیست و درخت در این زبان ها بصورت پیش ساخته وجود دارد.
زبان های برنامه سازی Functional
تا به حال زبان های زیادی با این دید طراحی و توزیع شده اند.از مهمترین آن ها می توان Lisp, ML, Prolog, Haskell را نام برد.
به تازگی در آزمایشگاه های شرکت مایکروسافت با همکاری دانشگاه کمبریج، Dialect جدیدی برای زبان ML تحت عنوان F# طراحی شده و طبق اعلام سایت مایکروسافت، قرار است با نسخه جدید Visual Studio به بازار ارائه شود.

