آموزش متنی برنامه نویسی تابع گرا (Functional Programming)

در این قسمت از وبسایت پرووید یک دوره آموزشی جدید دیگر را به شما تقدیم می کنیم. برنامه نویسی تابع گرا و یا همان functional programming یک سبک خاص از برنامه نویسی است که بر اساس توابع ریاضی کار می کند. زبان های برنامه نویسی تابع گرا برای انجام محاسبات سمبلیک و پردازش لیست ها ایجاد شده اند. برخی از مهم ترین زبان های برنامه نویسی تابع گرا شامل Lisp و Python و Erlang و Haskell و Clojure و غیره می باشد.

در این دوره آموزشی نگاه کلی در رابطه با مهمترین مفاهیم مربوط به زبان های برنامه نویسی تابع گرا را دریافت خواهید کرد. علاوه بر این یک تجزیه و تحلیل مقایسه ای بین زبانهای برنامه نویسی شی گرا و تابع گرا در هر مثال به شما ارائه خواهد شد. حتماً توصیه می کنیم از بسته ی آموزش ویدئویی برنامه نویسی تابعی در سی شارپ و بسته ی آموزش ویدئویی شی گرایی در سی شارپ استفاده کنید.


مقدمه ای بر برنامه نویسی تابع گرا

همانطور که در معرفی این دوره آموزشی خدمتتان عرض شد زبانهای برنامه نویسی تابع گرا به طور خاص برای انجام محاسبات سمبلیک و پردازش های مربوط به لیست ها ایجاد گردیده اند. برنامه نویسی تابع گرا بر اساس توابع ریاضی کار می‌کند و برخی از مهم ترین زبان های برنامه نویسی تابع گرا شامل Lisp و Python و Erlang و Haskell و Clojure و غیره می باشند.

در یک دسته بندی، زبان های برنامه نویسی تابع گرا به دو دسته زیر تقسیم بندی می شوند.

زبانهای تابع گرای خالص (Pure Functional Languages): این نوع از زبان های برنامه نویسی تابع گرا فقط از روش‌های تابع گرا پشتیبانی می‌کنند. مثالی از این نوع از زبان ها Haskell می باشد.

زبانهای تابع گرای غیرخالص (Impure Functional Languages): این نوع از زبانهای برنامه ‌نویسی تابع گرا هم از مفاهیم تابع گرا پشتیبانی می‌کنند و هم از سبک برنامه نویسی imperative. مثالی از این نوع از زبان های برنامه نویسی LISP می باشد. ضمناً در رابطه با سبک برنامه نویسی imperative و یا دستوری در آموزشهای دیگری از وبسایت پرووید صحبت خواهیم کرد.

ویژگی های برنامه نویسی تابع گرا

در این قسمت در رابطه با مهمترین ویژگی های برنامه نویسی تابع گرا صحبت خواهیم کرد.

زبان های برنامه نویسی تابع گرا براساس مفاهیم توابع در ریاضیات ایجاد گردیده اند و می توانند از عبارتهای شرطی و همچنین بازگشت که به آن recursion نیز می گویند استفاده کنند.

زبان های برنامه نویسی تابع گرا از این دو مفهوم برای انجام محاسبات خود استفاده می کنند.

برنامه نویسی تابع گرا از قابلیتهایی از قبیل higher-order functions و lazy evaluation استفاده می کند. در رابطه با lazy evaluation در بسته ی آموزش ویدئویی مباحث پیشرفته LINQ در سی شارپ صحبت کرده ایم.

زبان های برنامه نویسی تابع گرا از ساختارهای کنترل جریان و یا flow برنامه از قبیل حلقه های تکرار و یا جملات شرطی پشتیبانی نمی کند. برای مثال استفاده از حلقه for و یا جملات If-Else و یا Switch در آنها پشتیبانی نمی شود. آنها به طور مستقیم از توابع و فراخوانی کردن آنها استفاده می کنند.

شبیه به برنامه نویسی شی گرا و یا OOP زبان های برنامه نویسی تابع گرا از مفاهیم اساسی از قبیل abstraction و encapsulation و inheritance و polymorphism پشتیبانی می کند.

مخاطبین این دوره آموزشی

این دوره آموزشی می‌تواند برای تمامی برنامه نویسانی که قصد دارند با مفاهیم مربوط به برنامه نویسی تابع گرا آشنا بشوند مفید باشد. مفاهیم مطرح شده در این دوره آموزشی بسیار ساده و به همراه مثال های متنوع ارائه گردیده اند تا خواننده بتواند حتی اگر در سطح بسیار مبتدی از برنامه ‌نویسی قرار دارد این موارد را درک کند.

پیش نیازها

قبل از شروع به مطالعه این دوره آموزشی باید درک ابتدایی در رابطه با برنامه نویسی به طور کلی داشته باشید و زبان هایی از قبیل سی شارپ و یا حتی جاوا را بشناسید تا بتوانید مفاهیم مطرح شده را به بهترین شکل دریافت کنید.