Functional Programming یعنی چی ؟
سلام
Functional Programming یعنی چی ؟
اینکه اینجوری کد بنویسیم یعنی چی ؟
یعنی چی دیگه آبجکت تعطیل ، باید فانکشنال کد کنیم یا فکر کنیم
راستی منظورم این نیست که #F چیه ، #F ام مثله بقیه زبونا یه سینتکسی داره که اگه کسی بخواد باید یادش بگیرو استفاده کنه ؛ دونباله محسناتشم نیستم چون واقعاً عالیه
امیدوارم تونسته باشم دردمو بگم
نقل قول: Functional Programming یعنی چی ؟
بسیاری از پرسشهای شما به صورت کامل یا تا حد کامل توی همین بخش پاسخ داده شده برای مثال:
https://barnamenevis.org/showthread.p...اسبه-؟؟
https://barnamenevis.org/showthread.p...-میکند؟
https://barnamenevis.org/showthread.p...سمت-اول
https://barnamenevis.org/showthread.p...-F-چیست؟
https://barnamenevis.org/showthread.p...آموزشی-F
در کل توی بقیه سایت هم یه جستجو بکنید کلی مطلب پیدا میکنید اونهایی که مال قبل از این هست که یک بخش جدا به این زبان اختصاص پیدا کنه؛ ولی اگر به زبان انگلیسی آشنایی دارید به دنبال مطالب زبان اصلی بگردید که خیلی کاملتر و پله پله توضیح دادن. اگر هم به انگلیسی مسلط نیستید به نظر من از همین الان قید برنامه نویسی رو بزنید و بچسبید به یاد گیری زبان انگلیسی « اینجوری هم دنیا رو دارید هم آخرت رو » بعد از اون شما به هر زبان برنامه نویسی که اراده کنید میتونید مسلط بشید البته « البته به این نکته هم دقت کنید شما پیش نیاز آشنایی با ریاضیات و دروس مرتبط رو نباید فراموش کنید » ولی برای این که واقعن یه برنامه نویس بشید دانستن زبان انگلیسی یکی از ملزومات هست شاد و پیروز باشید./
پ ن: من همیشه به صورت کلی پاسخ میدم که اگر دوستان دیگه هم با این مشکل رو به رو هستن یه سری نتیجه بگیرن برای خودشون و کلی هم پست تکرار توی تاپیکها مختلف زده نشه.
نقل قول: Functional Programming یعنی چی ؟
از اینکه لینکه 4تا تاپیکو کپی پیست کردی ممنوون و باز
از اینکه یادآوری کردی که زبان انگلیسی برم یاد بگیرم ممنوون
بنده مشکلی با #F ندارم ، نمیخوامم بدوونم تاریخچش چیه ، من میخوام یه مثال عملی یکی بزنه دوزاریم بیوفته فانکشنال کد کردن یعنی چی
اگر اینجا سوالمو مطرح کردم برا این بود که جایه دیگه ایی پیدا نکردم تو سایت
نقل قول: Functional Programming یعنی چی ؟
نقل قول:
نوشته شده توسط
m.soleimani
راستش خیلی از جواب هایی که نه فقط در این فروم داده می شوند، که حتی در فروم هایی مثل کدپراجکت، دارای یک عیب بسیار بزرگ هستند. منظور من فقط شخص شما نیستید و لطفا از این که نوشته ی شما را نقل قول کردم ناراحت نشوید. ایراد بزرگ این هست که تمامی این جواب ها حاوی جواب هستند اما جواب آن سوال نیستند.
در خیلی از پست های دیگر هم سوال کننده می پرسد که زبان برنامه نویسی تابعی چیست و در جواب دوستان توضیح می دهند که اف شارپ چیست. می دانیم اف شارپ خیلی قابلیت ها و کاربردها دارد و می دانیم خیلی شرکت ها از اف شارپ استفاده می کنند اما این پاسخ سوال "زبان برنامه نویسی تابعی چیست؟" را نمی دهد.
تمامی لینک های شما را دیدم و هیچ یک به تنها چیزی که اشاره نمی کند همین است. شاید 5 خط برای توضیح این موضوع کافی باشد اما آنها پارگراف ها(گاه کپی از منابع تکراری) در باره ی تاریخچه و 1000 چیز دیگر در مورد اف شارپ می نویسند الا اینکه زبان برنامه نویسی تابعی چیست. در فروم هایی نظیر کد پراجکت که یوزر ها بی تربیت هم هستند و گاه کار برخی این هست که هر کس هر سوالی پرسید فوری جواب دهند که "google it" غافل از اینکه اگر گوگل جواب سوال را می داد کسی پستی را ایجاد نمی کرد که چنین سوالی را بپرسد. گاهی هم برخی یوزرها عادت دارند که گوگل کنند و لینک اولین نتیجه را به عنوان پاسخ مطرح کنند و بعد سرکوفت بزنند که چرا گوگل نمی کنید. غافل از اینکه خود او اصلا نه سوال را می فهمد و نه جواب را. منظور من شما نیستید اما این لینک ها مرا یاد خاطراتی از کدپراجکت انداخت.
چند کیلومتری انشاهای این لینک ها را خواندم و آخر سر همچنان برای من یک سوال بافی مانده است، که زیان برنامه نویسی تابعی چیست؟
یقینا ما نمی خواهیم یک کتاب بخوانیم تا جواب این سوال را دریابیم.
لطفا اگر کسی می تواند، تنها در چند خط جواب این سوال را بدهد.
نقل قول: Functional Programming یعنی چی ؟
من در حال خواندن کتاب #Programming F از انتشارات O’Reilly هستم. در فصل سوم کتاب تعریف برنامه نویسی تابعی به این شکل آمده:
نقل قول:
For a language to be considered “functional,” it typically needs to support a few key features:
- Immutable data
- Ability to compose functions
- Functions can be treated as data
- Lazy evaluation
- Pattern matching
نقل قول: Functional Programming یعنی چی ؟
نقل قول: Functional Programming یعنی چی ؟
ببینم اگر Functional خوبه پس چرا اینقدر Windows API که تابع تابعه آدمو زجر میده ؟؟؟
نقل قول: Functional Programming یعنی چی ؟
نقل قول: تا خبری بشه ....
با سلام و تشکر
میشه این مثال دوم که زدین هم #c و هم #f کدهاش رو بهم توضیح بدین .ممنون میشم
//C#
abstract class Command
{
public virtual void Execute();
}
abstract class MarsRoverCommand : Command
{
protected MarsRover Rover { get; private set; }
public MarsRoverCommand(MarsRover rover)
{
this.Rover = rover;
}
}
class BreakCommand : MarsRoverCommand
{
public BreakCommand(MarsRover rover)
: base(rover)
{
}
public override void Execute()
{
Rover.Rotate(-5.0);
}
}
class TurnLeftCommand : MarsRoverCommand
{
public TurnLeftCommand(MarsRover rover)
: base(rover)
{
}
public override void Execute()
{
Rover.Rotate(-5.0);
}
}
//F#
type Command = Command of (Rover -> unit)
let BreakCommand = Command(fun rover -> rover.Accelerate(-1.0))
let TurnLeftCommand = Command(fun rover -> rover.Rotate(-5.0<degs>))
نقل قول: Functional Programming یعنی چی ؟
یعنی عاشق این ملتم، یارو اومده در مورد functional programming سوال کرده، بعد راجع به F# حرف میزنید؟ (فقط cardano7 جواب مرتبط داده و بقیه حرف مفت زدید.)
اما اینکه functional programming چیه؟
جواب ساده این سوال اینه که function شهروند درجه یک برنامه نویسی میشه. به عبارتی دیگر در یک زبان برنامه نویسی FP شما قدرت کار بیشتری برای سر و کله زدن با function ها دارید(حتی از قدرت عمل شما در جاهایی کاسته میشود تا بتواند با function ها بهتر و قوی تر کار کنید.)
مثالهایی از مفهوم "شهروند درجه یک بودن function"
دو قابلیت زیر که قابلیتی هستند که معمولاً فقط در زبانهای functional یافت میشوند:
1 - یکی از کارهایی که میتونید در زبان FP بکنید اینه با function به صورت داده رفتار کنید(مثلاً به عنوان ورودی و یا خروجی method ها یک function را رد و بدل کنید.) (این قابلیت در F# و C# هر دو وجود دارد)
2 - یکی دیگه از قابلیتهای زبانهای functional اینه که میتونید function را به صورت جزئی فراخوانی کنید و یک function دیگر در خروجی بگیرید. (مثلاً اگر تابع X دو پارامتر a و b دارد در زبانی مانند Java تنها حالتی که میتونید این تابع را صدا بزنید این است که هر دو پارامتر a و b را مقدار دهی کنید. اما در یک زبان functional مانند F# شما میتوانید فقط مقدار پارامتر a را بدهید و چون هنوز مقدار b را مشخص نکرده اید در خروجی یک تابع میگیرید که یک پارامتر b دارد و اگر آن را صدا بزنید مانند این است که تابع X را صدا زده اید.) - این قابلیت در F# وجود دارد و در JavaScript به نوعی قابل انجام است.
مثال از محدودیت زبان functional در راستای پشتیبانی بهتر از مفهموم "شهروند درجه یک بودن function"
معمولاً زبانهای functional دارای این محدودیت هستند که مفهومی با نام متغیر ندارند(آره منظورم variable است) چون در این زبانها ماهیت function بیشتر به تعریف ریاضی آن نزدیک است. در این زبانها function دارای side effect نیست بلکه فقط و فقط دارای ورودی و خروجی است و در بدنه آن فقط محاسبات صورت میگیرد و نه عملیات. محاسبات هم به صورت اجرای توابع و عملگرهای مختلف بر روی ورودی و تولید مقادیر موقت داخلی و انجام مکرر توابع عملگرها و توابع بر روی مقادیر موقت داخلی و در نهایت تولید مقدار خروجی پیش میرود.
اینها نمونه ای از مفاهیمی بود که امیدوارم کمک کند تا تصویری از تفارت زبانها functional و سایر زبانها داشته باشی. البته چون این مفاهیم کمی سخت هستند(حتی برای خودم) و من هم خودم خیلی مسلط نیستم، این جواب من جامع و کامل نیست و فقط به امید اینکه ایده ای ارائه کرده باشم این رو نوشتم.
در ضمن "object تعطیل" لفظ درستی نیست. اگر منظورتون اینه که object مطرح نیست، باید بگم به طور مثال در زبانی مثل F# چون چندپارادایم هست(multi paradigm) همچنان هم object oriented programming قابل انجامه و هم functional programming. ولی در زبانهای pure functional به طور کلی خبری از مفهوم object نیست.