অবজেক্ট ওরিয়েন্টেড ভাষাগুলিতে শৃঙ্খলাবদ্ধ পদ্ধতি কারি থেকে কিছুটা আলাদা। দ্বারা সংজ্ঞা , সংবাহন ফল মূল একটি সীমাবদ্ধ ফর্ম ফাংশন । কনভেনশন দ্বারা , পদ্ধতি শৃঙ্খলার ফলাফলটি মূল (সাধারণত অ-কার্যকারিতা) অবজেক্টের পরিবর্তিত রূপ । পদ্ধতি শৃঙ্খলাবদ্ধকরণ একই শ্রেণীর সাথে সম্পর্কিত নয় এমন পদ্ধতিগুলির সাথে ব্যবহার করা যেতে পারে, তবে কারি করার ক্ষেত্রে কোনও ফাংশন ফিরিয়ে নেওয়া জড়িত যেখানে মূল ফাংশনের এক বা একাধিক পরামিতিগুলি স্থির (পূর্বনির্ধারিত) থাকে।
জাভাতে, মেথড চেইনিংয়ের মতো:
String myString = new StringBuilder("Hi ").append(firstName)
.append(" ")
.append(lastName)
.append("!")
.toString();
সুতরাং, এই সমস্ত .append () পদ্ধতি কলগুলির প্রত্যেকটি বেনামে স্ট্রিংবিল্ডার অবজেক্টকে একটি পয়েন্টার দেয়। এই অবজেক্টটি প্রতিটি .append () পরে সম্পূর্ণ হয় এবং এটি কোনও ফাংশন নয়।
বিপরীতে, স্কালায় আংশিক প্রয়োগ বা কারিরিং এর মতো:
def simple(x:Int, y:Int, z:Int) = x * (y + z)
val simpler = simple(2, _:Int, _:Int)
simpler(3, 4) => 14
( ড্যানিয়েল ইয়ানকোভস্কির ব্লগ থেকে নেওয়া নমুনা )
simpler()
এই উদাহরণে একটি মোড়ক-ফাংশন simple()
। simpler()
এটি এখনও এমন একটি ফাংশন যা নিজেই আরও সীমিত সংস্করণ ছাড়া অন্য কোনও কিছুতে মূল্যায়ন করার আগে আরও পরামিতি নেয়।
সম্পাদনা: একদিন পরে এটি পড়া, আমি "র্যাপার-ফাংশন" কী বলে মনে করি। কার্পিং বা আংশিক অ্যাপ্লিকেশন জাভাতে মোড়কের পদ্ধতিগুলির সাথে সেরা সিমুলেট করা যেতে পারে।
public interface Simpler {
public int apply(int y, int z);
}
public class Simple {
public int apply(int x, int y, int z) { return x * (y + z); }
public Simpler partiallyApply(final int x) {
final simple = this;
return new Simpler() {
@Override
public int apply(int y, int z) {
// x is the final int parameter to partiallyApply()
simple.apply(x, y, z);
}
}
}
}
: শেষ-সম্পাদনা
পদ্ধতিতে শৃঙ্খলা আংশিক প্রয়োগ বা কারিঙের অনুরূপ হতে পারে তবে এটি কেবল অন্যান্য পদ্ধতির সাথে ফিরে আসে (ফান্টেক্টরগুলি সন্ধান করে) এবং তারপরে পদ্ধতিগুলি রিটার্ন টাইপের সাথে সেট আপ করা দরকার যা অর্থপূর্ণভাবে কারিঙ বা আংশিক প্রয়োগকে মডেল করে।
"বিল্ডার" ডিজাইন প্যাটার্ন এবং জাভা 8- এ নতুন সংগ্রহ লাইব্রেরি ইন্টারফেসগুলির সাথে সম্পন্ন যেমন অলস মূল্যায়নের মতো কিছু বাস্তবায়নের জন্য পদ্ধতি শৃঙ্খলা প্রায়শই ব্যবহৃত হয় ।
আমি আশা করি এটি সাহায্য করবে.