در این قسمت از وبسایت پرووید یک دوره آموزشی جدید دیگر را به شما تقدیم می کنیم. برنامه نویسی تابع گرا و یا همان Functional Programming یک سبک خاص از برنامه نویسی است که بر اساس توابع ریاضی کار می کند. زبان های برنامه نویسی تابع گرا برای انجام محاسبات Symbolic و پردازش لیست ها ایجاد شده اند. برخی از مهم ترین زبان های برنامه نویسی تابع گرا شامل Lisp و Python و Erlang و Haskell و Clojure و غیره می باشد.
در این دوره آموزشی نگاه کلی در رابطه با مهمترین مفاهیم مربوط به زبان های برنامه نویسی تابع گرا را دریافت خواهید کرد. علاوه بر این یک تجزیه و تحلیل مقایسه ای بین زبان های برنامه نویسی شی گرا و تابع گرا در هر مثال به شما ارائه خواهد شد. حتماً توصیه می کنیم از آموزش برنامه نویسی تابعی Functional Programming در سی شارپ و آموزش شی گرایی OOP در سی شارپ استفاده کنید.
مقدمه ای بر برنامه نویسی تابع گرا
همانطور که در معرفی این دوره آموزشی خدمتتان عرض شد، زبان های برنامه نویسی تابع گرا به طور خاص برای انجام محاسبات Symbolic و پردازش های مربوط به لیست ها ایجاد گردیده اند. برنامه نویسی تابع گرا بر اساس توابع ریاضی کار میکند و برخی از مهم ترین زبان های برنامه نویسی تابع گرا شامل 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 پشتیبانی می کند.
مخاطبین این دوره آموزشی
این دوره آموزشی میتواند برای تمامی برنامه نویسانی که قصد دارند با مفاهیم مربوط به برنامه نویسی تابع گرا آشنا شوند، مفید باشد. مفاهیم مطرح شده در این دوره آموزشی بسیار ساده و به همراه مثال های متنوع ارائه گردیده اند تا خواننده بتواند حتی اگر در سطح بسیار مبتدی از برنامه نویسی قرار دارد این موارد را درک کند.
پیش نیازها
قبل از شروع به مطالعه این دوره آموزشی باید درک ابتدایی در رابطه با برنامه نویسی به طور کلی داشته باشید و زبان هایی از قبیل؛ سی شارپ و یا حتی جاوا را بشناسید تا بتوانید مفاهیم مطرح شده را به بهترین شکل دریافت کنید.