একটি সম্পূর্ণ এন্টারপ্রাইজ অ্যাপ্লিকেশন বিকাশ করতে ফাংশনাল প্রোগ্রামিং ব্যবহার করা যেতে পারে?


19

আমি সবেমাত্র ফাংশনাল প্রোগ্রামিং (এফপি) শিখতে শুরু করছি। আমি একটি ওওপি বিশ্ব থেকে এসেছি, যেখানে সমস্ত কিছুই অবজেক্ট এবং তাদের বেশিরভাগই পরিবর্তনযোগ্য। আমার ধারণার চারপাশে মোড়ানো একটি কঠিন সময় যা ফাংশনগুলির পার্শ্ব প্রতিক্রিয়া হয় না।

যদি কিছু পরিবর্তনীয় না হয় তবে কর্মচারী বা ব্যক্তির মতো সাধারণ জিনিসগুলি কীভাবে এফপিতে প্রতিনিধিত্ব করা হয়।

একটি পূর্ণাঙ্গ এন্টারপ্রাইজ অ্যাপ্লিকেশন তৈরি করতে এফপি ব্যবহার করা যেতে পারে?


5
একজন কর্মীর প্রতিনিধিত্ব কেন পরিবর্তন হতে হবে? এটি সম্ভবত রাষ্ট্র আছে, কিন্তু এটি সম্পূর্ণ অন্য প্রশ্ন।

1
মিউটেবল ডেটা ব্যবহার করে জিনিসগুলি represents বৈপরীত্য অনুসারে অপরিবর্তনীয় ডেটাগুলির একটি নির্দিষ্ট সময়ে সময়ে কোনও কিছুর মূল্য থাকে (যদিও এটি এটির একমাত্র ব্যবহারের ক্ষেত্রে নয়)। আপনার যদি প্রতিটি বাগ থাকে যেখানে আপনার দুটি একই রকম প্রতিনিধিত্বমূলক দুটি পরিবর্তনীয় বস্তু থাকে তবে আপনি এমন একটি বিষয় সম্পর্কে জানেন যেখানে জিনিসগুলি উপস্থাপন করার জন্য অবজেক্টগুলি ব্যবহার ভেঙে যেতে পারে।
ড্যান_ ওয়াটারওয়ার্থ

2
ফাংশনাল প্রোগ্রামিং এর পার্শ্ব প্রতিক্রিয়া রয়েছে, অন্যথায় আপনি কখনও কিছু মুদ্রণ করতে সক্ষম হবেন না।

1
@ থরবজর্ন রাভন অ্যান্ডারসন: জরুরী (প্রক্রিয়াগত, অবজেক্ট-ওরিয়েন্টেড) প্রোগ্রামিংয়ে আপনি বাহ্যিক বিশ্বের (আইও) সাথে যোগাযোগের জন্য এবং আপনার প্রোগ্রামের মধ্যে ডেটা ট্রান্সফর্মেশনগুলির জন্য কম্পিউটারের জন্য পার্শ্ব প্রতিক্রিয়া ব্যবহার করেন। এফপিতে আপনি দুটি বিশ্বকে স্পষ্টভাবে পৃথক করেছেন: আপনি কেবল আইওর জন্য পার্শ্ব প্রতিক্রিয়া ব্যবহার করেন (আইও ছাড়াই একটি প্রোগ্রাম সাধারণত অকেজো) তবে অভ্যন্তরীণ ডেটা ট্রান্সফরমেশনগুলি গণনা করার জন্য আপনি খাঁটি ফাংশন ব্যবহার করেন। পার্শ্ব-প্রতিক্রিয়াগুলি পুরোপুরি এড়ানো যায় না তবে তারা স্থানীয় না হওয়ায় তাদের সম্পর্কে তর্ক করা আরও কঠিন, সুতরাং যতটা সম্ভব তাদের ব্যবহার সীমাবদ্ধ করা ভাল।
জর্জিও

"ব্যক্তি" অবজেক্টের মতো কিছুতে পরিবর্তন করার দরকার নেই। পরিবর্তে, আপনি একটি সম্পূর্ণ নতুন "ব্যক্তি" অবজেক্ট তৈরি করেন যা প্রায় একই (তবে কিছুটা আলাদা)। আপনার কাছে কোথাও "ব্যক্তি" অবজেক্টের একটি রেফারেন্স থাকতে হবে এবং পুরানো অনুলিপিটির পরিবর্তে নতুন অনুলিপিটি উল্লেখ করার জন্য এটি পরিবর্তন করুন। অবশ্যই সেই রেফারেন্সটি কোনও একরকম সংগ্রহের মধ্যে থাকতে পারে, সুতরাং সংগ্রহটির অনুলিপিটি প্রায় একই create সংগ্রহের কোনও রেফারেন্স থাকতে হবে যাতে আপনি নতুন সংগ্রহের জন্য পুরানো সংগ্রহটি অদলবদল করতে পারেন!
ব্রেন্ডন 16

উত্তর:


17

প্রশ্নটি এন্টারপ্রাইজে এফপি ব্যবহার করা যাবে না? তবে আমাদের এন্টারপ্রেসে এফপি ব্যবহার করা উচিত?

অবশ্যই আপনি করতে পারেন. আপনি যে কোনও প্রকারের প্রোগ্রামিং ভাষার সাথে যে কোনও প্রকারের অ্যাপ্লিকেশন বিকাশ করতে পারেন, এজন্য তাদের "টুরিং সম্পূর্ণ" বলা হয় are

এখন, প্রশ্নটিতে "এন্টারপ্রাইজে এটি ব্যবহার করা উচিত?" এটি আপনার বা আপনার নিয়োগকর্তাদের উপর নির্ভর করে যে কোনও ধরণের অ্যাপ্লিকেশনগুলিতে এফপি সত্যিই উপকারী হতে পারে এবং বাস্তবে এটি বেশ ব্যবহৃত হয়: শিল্পে হাস্কেল

এখন, আপনি জিজ্ঞাসা করছেন "তাহলে কেন বেশি ব্যবহার করা হয় না?" মূলত যেহেতু অন্যান্য ইমপিরিটিভ / ওও ভাষাগুলি বেশি প্রচলিত এবং সংস্থাগুলি আরও "বিদেশী" ভাষায় পরিবর্তন করতে অস্বীকৃতি জানায় কারণ সেগুলি জাভা বা সি ++ এ ব্যবহৃত হয়।


7
You can develop any kind of application with any kind of programming languageএটি একটি খুব দুর্বল যুক্তি, টুরিং তারপিকেট থেকে সাবধান থাকুন ...
ইয়ানিস

5
@ ইয়ানিসরিজস আমি মনে করি যে তিনি সমস্যার প্রতিটি ট্যানজেন্টের অন্বেষণের বিপরীতে একটি টু দ্য পয়েন্ট উত্তরের জন্য সাধারণীকরণ করছিলেন।
জনি রটেন

2
@YannisRizos করতে !=চাই

1
কখনও কখনও এটি আমার কাছে মনে হয় যে নির্দিষ্ট ধরণের এন্টারপ্রাইজ সমাধানগুলির জন্য
ভাষাও

2
আমি যুক্তি দিয়ে বলব যে এটি আপনার নিয়োগকারীদের উপর নির্ভর করে না, যখন এটি ভাষার কথা আসে, তখন ইঞ্জিনিয়াররা তাদের উপর নির্ভর করে যে আমরা যা দেখি তা আমাদের প্রযুক্তিগত দৃষ্টিকোণ থেকে সেরা।
shmish111

11

আমি কয়েক বছর আগে এফপি ভাষা সম্পর্কে শিখতে শুরু করেছি (হাস্কেল, স্কালা, স্কিম) এবং, যদিও আমি একজন বিশেষজ্ঞ হতে অনেক দূরে, আমি জানতে পেরেছিলাম যে তারা সি ++ বা জাভার চেয়ে কিছু নির্দিষ্ট কাজের জন্য আমাকে অত্যন্ত উত্পাদনশীল করে তুলতে পারে ।

আইএমও, এফপি ভাষার কয়েকটি শক্তি হ'ল:

  • তারা খুব সংক্ষিপ্ত হতে থাকে, তবুও তারা একটি স্পষ্ট শব্দার্থবিজ্ঞান ধরে রাখে।
  • আপনি একটি ঘোষণামূলক স্টাইল ব্যবহার করতে পারেন এবং প্রয়োগের বিশদ সম্পর্কে খুব বেশি ভাবার দরকার নেই।
  • হাস্কেলের মতো একটি সমৃদ্ধ ধরণের সিস্টেম খুব তাড়াতাড়ি অনেকগুলি যৌক্তিক ত্রুটিগুলি ধরতে পারে (সংকলনের সময়)। আমি যতদূর জানি (খুব বেশি আসলে না), এসএমএল এবং ওক্যামেল একই রকম সুবিধা দেয়।

এখন অবধি, আমি এফপি দৃষ্টান্তে স্যুইচটি পেয়েছি বেশ উত্তেজনাপূর্ণ এবং একবারে পর্যাপ্ত সময় ব্যয় করার পরেও খুব বেশি কঠিন নয়। (তবে আমি সি বা সি ++ শিখতে কত সময় ব্যয় করেছি? অনেকটা!)

সুতরাং আমি মনে করি যে প্রযুক্তিগত দৃষ্টিকোণ থেকে এটি কার্যকরী প্রোগ্রামিং ভাষা ব্যবহার করে একটি সম্পূর্ণ এন্টারপ্রাইজ অ্যাপ্লিকেশন বিকাশ করতে পুরোপুরি বোধ করে।

দুর্ভাগ্যক্রমে এই দৃষ্টান্তটি মূলধারার নয়: বেশিরভাগ সংস্থাগুলি কেবল ভাল-পরীক্ষিত প্রযুক্তি গ্রহণ করার ঝোঁক রাখে, সুতরাং তারা এফপি থেকে দূরে থাকবে যতক্ষণ না তাদের কাছে এটির কাজ করার পর্যাপ্ত প্রমাণ না পাওয়া পর্যন্ত, সেখানে যথেষ্ট বিকাশকারী, সরঞ্জাম, গ্রন্থাগার, ফ্রেমওয়ার্ক রয়েছে। সুতরাং আপনি এমন কোনও চাকরি খুঁজে পাওয়া আরও বেশি কঠিন যেটিতে আপনি এফপি প্রোগ্রামিং পুরোপুরি করতে পারেন-এখনই।

মাল্টি-কোর প্রসেসরের ক্রমবর্ধমান ব্যবহার এফপি ভাষায় আরও বিনিয়োগ করতে উত্সাহিত করবে, যা বর্তমান যুগের সফ্টওয়্যার লেখার পক্ষে বেশ শক্তিশালী বলে মনে হয় যদি বর্তমান পরিস্থিতি পরিবর্তিত হতে পারে।

এছাড়াও, মূলধারার মধ্যে কিছু এফপি বৈশিষ্ট্যগুলি প্রবর্তন করার প্রবণতা রয়েছে, সি #, সি ++ এর মতো অ-কার্যকরী ভাষাগুলিতে যাতে প্রোগ্রামাররা সম্পূর্ণ প্যারাডাইম সুইচের প্রয়োজন ছাড়াই কিছু এফপি ব্যবহার করতে পারে। সম্ভবত এখন থেকে দশ বছরে এই ভাষাগুলি পর্যাপ্ত এফপি বৈশিষ্ট্যগুলি কভার করবে যে খাঁটি কার্যকরী ভাষায় স্যুইচ করা অনেক সহজ হবে।


10

আমি মনে করি না যে এটি অগত্যা সেরা ধারণা। তবে এটি নির্দিষ্ট প্রয়োগের প্রকৃতির উপর নির্ভর করে।

আমি এরিক ইভানসের দর্শনটিতে তার বিশ্বাস, ডোমেন-ড্রাইভড ডিজাইন বইটিতে বর্ণিত হিসাবে অনেকটা বিশ্বাস করি যে আপনার হাতে এমন একটি ডোমেন মডেল তৈরি করা উচিত যা আপনার সমস্যার সমাধানে সহায়তা করতে পারে your ইভান্স এমন একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ সন্ধানের পরামর্শ দেয় যা হাতে বিশেষ সমস্যাটি নিয়ে বসে থাকে, যেমন তিনি ফোরট্রানকে গাণিতিক প্রকৃতির সমস্যা সমাধানের উপায় হিসাবে উল্লেখ করেছেন। অথবা নিজেই সমস্যাটির জন্য বিশেষত ডোমেন-নির্দিষ্ট ভাষা তৈরি করা।

আপনি যখন একটি ভাল ডোমেন মডেল তৈরি করতে সাফল্য পেয়েছেন, আপনি দেখতে পাবেন যে উপস্থাপনা কোডটি ডোমেন স্তরের উপরে একটি পাতলা শেল হয়ে শেষ হয়।

এখন এন্টারপ্রাইজ অ্যাপ্লিকেশন সহ জিনিসটি হ'ল এই ধরণের অ্যাপ্লিকেশনটিতে (যদি আপনি এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলি সম্পর্কে সাধারণীকরণ করতে পারেন) প্রায়শই সত্তার অবস্থার পরিবর্তন করা হয় যার পরিচয়টি গুরুত্বপূর্ণ, এবং একটি ডেটাবেজে পরিবর্তিত সংস্থাগুলি অব্যাহত রাখে। এই খুব সাধারণ ধরণের সমস্যা হ'ল আইএমএইচও একটি কার্যকরী মডেলের চেয়ে এন অবজেক্ট ওরিয়েন্টেড মডেল ব্যবহার করে অনেক বেশি ভাল সমাধান করা।

এর অর্থ এই নয় যে কোনও এন্টারপ্রাইজ অ্যাপ্লিকেশনের ক্ষেত্র রয়েছে যা কার্যকরী দৃষ্টান্তের মাধ্যমে আরও ভাল সমাধান করা যায় না। উদাহরণস্বরূপ, কোনও ব্যাঙ্কিং অ্যাপ্লিকেশনের ঝুঁকি বিশ্লেষণ মডিউল, বা শিপিং অ্যাপ্লিকেশনে একটি রুট প্ল্যানিং মডিউল। এবং সম্ভবত কিছু এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলি কার্যকরভাবে দৃষ্টান্ত ব্যবহার করে পুরোপুরি প্রয়োগ করা যেতে পারে।

তবে সাধারণভাবে, আমি মনে করি যে অবজেক্ট ওরিয়েন্টেড দৃষ্টান্তটি বেশিরভাগ এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলির জন্য আরও দরকারী ডোমেন মডেল তৈরি করতে দেয়।

সম্পাদন করা

কিছু উত্সাহের কারণে, আমার মনোযোগ এই উত্তরটির দিকে আকৃষ্ট হয়েছিল - এবং যেহেতু আমি এটি লিখেছি, এফপি সম্পর্কে আমি আরও অনেক কিছু শিখেছি - এবং আমি আমার নিজের উত্তরটির সাথে আর একমত হওয়ার বিষয়ে পুরোপুরি নিশ্চিত নই। কিছু কার্যকরী ভাষা ব্যবহারের ক্ষেত্রে খুব সুন্দরভাবে বর্ণনা করতে পারে। তবে আপনার সম্পূর্ণ ভিন্ন মাইন্ড সেট শিখতে হবে।


2
+1: খুব ভাল এবং উত্তেজক উত্তর। এফপি সম্পর্কে আমার সীমিত জ্ঞানের কারণে আমি এটি সঠিক কিনা তা নিশ্চিত নই, তবে আমি মনে করি যে অবিচলিত বস্তুগুলি মোড বা অনন্য প্রকারের (ক্লিনে) ব্যবহার করে মডেল করা যেতে পারে: এইভাবে কোনও মান একটি পরিচয় পেতে পারে, আপনার প্রোগ্রামের চারপাশে পাস করা যেতে পারে I এবং বিভিন্ন ফাংশন দ্বারা রূপান্তরিত। তবে এটিকে ব্যাক আপ করার জন্য আমার সত্যিই কোনও এফপি বিশেষজ্ঞের মতামত প্রয়োজন।
জর্জিও

3

হ্যা পারি. গুগল কিছুটা এবং আপনি খাঁটি কার্যকরী ভাষায় কোডেড আসল সফ্টওয়্যার পাবেন।

ব্যবসায়িক বিষয়গুলি সম্পর্কে আপনার প্রশ্ন হিসাবে, আমি অনুমান করি যে আপনার আসল সমস্যাটি অপরিবর্তনীয়তা নিয়ে। সেক্ষেত্রে বিবেচনা করুন যে প্রতিবার আপনি কোনও অত্যাবশ্যক ভাষা ব্যবহার করা হলে আপনি কোনও নতুন "ব্যক্তি" ফিরিয়ে দিচ্ছেন it

নোট করুন যে এই কৌশলটি অপরিহার্য ভাষা ব্যবহার করে প্রয়োগ করা যেতে পারে!


3

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (ওওপি) এর মতো ফাংশন প্রোগ্রামিং (এফপি) হ'ল দৃষ্টান্ত। তারা প্রোগ্রামিং সমস্যার বিভিন্ন ধরণ বা পদ্ধতির প্রতিনিধিত্ব করে। এই বিভিন্ন পন্থাগুলি স্কেলযোগ্য, রক্ষণাবেক্ষণযোগ্য এবং এক্সটেনসিবল সফ্টওয়্যার উত্পাদন করার ক্ষমতাকে বাধা দেয় না। এর অর্থ এটি নয় যে সমস্ত ধরণের সমস্যার জন্য পদ্ধতির সমতুল্য; তারা না। নির্দিষ্ট সমস্যাগুলি নির্দিষ্ট প্যারাডিমগুলিতে নিজেকে আরও ভাল (বা আরও খারাপ) সারিবদ্ধ করে তোলে, উদাহরণস্বরূপ এফপি কোনও প্রোগ্রামের জন্য আমার প্রথম পছন্দ হবে না যার পার্শ্ব প্রতিক্রিয়াগুলির সাথে অপারেশনগুলির নির্ভরশীল ক্রম রয়েছে। তবে এই জাতীয় প্রোগ্রামগুলি লিখিত হতে পারে এবং ভাল লেখাও যেতে পারে।


3

হ্যাঁ, এফপি এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলিতে ব্যবহার করা যেতে পারে। এন্টারপ্রাইজে সাফল্যের সাথে ক্লোজার একটি এফপি ভাষার একটি উদাহরণ: http://cognitect.com/clojure#successstories

রাষ্ট্রের প্রতিনিধিত্ব করা এফপিতে চ্যালেঞ্জ হতে পারে এবং এফপিতে ফিট করার জন্য প্যারাডিমগুলি পরিবর্তন করা কিছুটা মাইন্ড ওয়ার্প হতে পারে। কিছু এফপি ভাষা সম্পূর্ণরূপে অনুমতি দেয় না পার্শ্ব প্রতিক্রিয়া এবং পরিবর্তনীয় স্থিতি। ক্লোজওর উভয়কেই অনুমতি দেয় তবে সেই দৃষ্টান্তগুলিকে নিরুৎসাহিত করে বা আলাদা করে দেয়।

সংক্ষেপে, রাষ্ট্রের উপস্থাপনা ওওর সাথে খুব মিল থাকতে পারে। এটি রাষ্ট্রীয় পরিবর্তন যা খুব আলাদা। উদাহরণস্বরূপ, এফপি রাজ্যে তালিকা এবং মানচিত্রের দ্বারা প্রতিনিধিত্ব করা যেতে পারে। কর্মীদের একটি তালিকা হতে পারে:

[[name: "James Brown" address: "Barnwell, SC"]
 [name: "Elvis Presley" address: "Tupelo, MS"]]

এফপিতে রাষ্ট্রীয় পরিবর্তন পরিচালনা করার জন্য আমি দুটি উপায় জানি। একটি হ'ল কার্যক্ষম প্রতিক্রিয়াশীল প্রোগ্রামিং এর মতো কিছু। এই দৃষ্টান্তে সমস্ত রাজ্য কেবলমাত্র উচ্চ স্তরে পরিচালিত হয় ... উদাহরণস্বরূপ, আপনার অ্যাপ্লিকেশনটির এইচটিএমএল ভিউতে দর্শন রয়েছে (যেমন ব্যক্তির নাম, ঠিকানা ইত্যাদি)। এখন আপনি যখন "আপডেট নাম" ক্লিক করেন তখন একটি ফাংশন বলা হয় যা নাম পরিবর্তন করে নাম পরিবর্তন করা বাদ দিয়ে প্রতিটি নাম পরিচালনা করে thing এটি অদ্ভুত লাগতে পারে ... তবে আমার সাথে সহ্য করুন। পরিবর্তিত নামটি ফাংশন দ্বারা ফিরে আসবে এবং ভিউ (বা ক্রমাগত ডেটা স্টোর ইত্যাদি) নতুন নামটি দেখায়। অথবা, বিকল্প হিসাবে, আপডেট হওয়া নামের একটি সম্পূর্ণ নতুন কাঠামো ফিরে আসবে। সুতরাং ফাংশনটি কি করে? এটি নামটি বৈধ করে এবং নতুন নামটি বৈধ হলে তা ফেরত দেয়, যদি না হয় তবে একটি ত্রুটি, এবং অনুসরণ করতে একটি নতুন ভিউ বা নেভিগেশন লিঙ্ক সম্ভবত। নাম পরিবর্তনের চেয়ে জটিল কিছু করার জন্য এটি আরও অনেক কিছু করতে পারে।

সুতরাং এফআরপি-র জন্য ফাংশনটি দিয়ে ফিরে আসা জিনিসটি হ'ল নতুন রাষ্ট্র এবং এটি সরাসরি দর্শন বা উচ্চ স্তরের যা কিছুতে দেওয়া যেতে পারে। কিছু ক্ষেত্রে এফআরপি পুরো রাজ্যটিকে কার্যক্রমে প্রেরণ করে এবং পুরো রাজ্যকে ফিরিয়ে দেয়।

এই দৃষ্টান্তের সাহায্যে ধারক বা ফ্রেমওয়ার্কের জন্য নতুন স্টেট থেকে ডিসপ্লে, ডাটাবেস বা অন্য যে কোনও কিছু আপডেট করার দরকার হয় handle সুতরাং আপনি এমন একটি কাঠামো কল্পনা করতে পারেন যা অ্যাপ্লিকেশনটিকে স্ক্রিনে আঁকবে। যখন কোনও ব্যবহারকারী ক্লিক করেন তখন কিছু ফাংশন চাওয়া হয় এবং নতুন রাষ্ট্র ফিরে আসে। এর পরে ফ্রেমওয়ার্কটি সমস্ত কিছু পুনরায় আঁকলে বা বুদ্ধিমানভাবে প্রদর্শনের অংশগুলি আবার অঙ্কন করে স্ক্রিন আপডেট করে। দেখা http://blog.getprismatic.com/om-sweet-om-high-functional-frontend-engineering-with-clojurescript-and-react/

ক্লোজুরে দ্বিতীয় দৃষ্টান্ত ব্যবহার করে যা আমি এসে পৌঁছেছি এবং তা হল রাষ্ট্রীয় পরিবর্তনগুলি বিচ্ছিন্ন করা কিন্তু প্রয়োজনীয়ভাবে এগুলি সর্বোচ্চ স্তরে সীমাবদ্ধ করে না। ক্লোজারের সাথে সমস্ত পার্শ্ব পরিবর্তনযোগ্য রাষ্ট্র অবশ্যই একটি পরমাণু, এজেন্ট বা রেফারেন্সের দ্বারা "আটকানো" (আপনি রাষ্ট্রের জন্য জাভা অবজেক্ট ব্যবহার করছেন না) হওয়া উচিত। এটি যেভাবে কাজ করে তা পরমাণু / এজেন্ট / রেফ দ্বারা আটকানো বা নির্দেশিত বা রেফারেন্স করা (তবে আপনি এটি কল করতে চান) অপরিবর্তনীয়, তবে পরমাণু / এজেন্ট / রেফ কোনও নতুন অবজেক্টের দিকে নির্দেশ করতে পারে। এক্ষেত্রে আপনি পরমাণু / এজেন্ট / রেফের উপর বিশেষ পদ্ধতি ব্যবহার করেন যা বলে যে "বস্তুটি এখানে এ জাতীয় কাজ করে আপডেট করুন এবং পরমাণু / এজেন্ট / রেফারেন্সকে একটি নতুন অবজেক্টে পুনরায় নিয়োগ করুন" say

আপনি জিজ্ঞাসা করতে পারেন কেন এটি উপকারী? কারণ এই ক্লোজার কন্সট্রাক্টসগুলির দ্বারা রেফারেন্সযুক্ত অপরিবর্তনীয় বস্তু এমন কোনও ফাংশনে প্রেরণ করা যেতে পারে যা কিছু করে এবং সেই ফাংশনটি যখন অবজেক্টটির সাথে তার রেফারেন্স চালাচ্ছে তখন পরিবর্তন না করার গ্যারান্টিযুক্ত। এটি হল, পরমাণু / এজেন্ট / রেফ ফাংশনে প্রেরণ করা হয় না তবে তাদের দ্বারা নির্দেশিত অপরিবর্তনীয় বস্তুটি পাস হয়ে যায়। পরমাণু, এজেন্টস এবং রেফারগুলিতে বিশেষ বৈশিষ্ট্য রয়েছে যা নিরাপদ এবং ভাষার অংশ হিসাবে আপডেটগুলি এবং একত্রে সামঞ্জস্য করে। দেখাHttp://clojure.org/state

আশা করি এটা কাজে লাগবে. কীভাবে কর্মচারী এবং ব্যক্তিদের এফপিতে প্রতিনিধিত্ব করা যায় সে সম্পর্কে আরও ভাল ধারণা পেতে আমি ক্লোজার রাষ্ট্র এবং এফআরপি সম্পর্কে আরও পড়ার পরামর্শ দিই। যদিও, প্রকৃত উপস্থাপনা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের সাথে সমান হবে ... এটি এমন পরিবর্তনের যা সত্যই আলাদা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.