சி ++ இல் லாம்ப்டா வெளிப்பாடுகள்

Lambda Expressions C



ஏன் லம்ப்டா வெளிப்பாடு?

பின்வரும் அறிக்கையை கவனியுங்கள்:

intmyInt= 52;

இங்கே, myInt ஒரு அடையாளங்காட்டி, ஒரு மதிப்பு. 52 என்பது ஒரு நேரடி, ஒரு மதிப்பு. இன்று, ஒரு செயல்பாட்டை விசேஷமாக குறியிடவும் 52 வது நிலையில் வைக்கவும் முடியும். அத்தகைய செயல்பாடு லாம்ப்டா வெளிப்பாடு என்று அழைக்கப்படுகிறது. பின்வரும் குறுகிய திட்டத்தையும் கவனியுங்கள்:







#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intfn(intமூலம்)

{

intபதில்=மூலம்+ 3;

திரும்பபதில்;

}


intமுக்கிய()

{

fn(5);



திரும்ப 0;

}

இன்று, ஒரு செயல்பாட்டை விசேஷமாக குறியிடலாம் மற்றும் அதை 5 என்ற வாதத்தின் நிலையில் வைக்கலாம், செயல்பாட்டு அழைப்பு, fn (5). அத்தகைய செயல்பாடு லாம்ப்டா வெளிப்பாடு என்று அழைக்கப்படுகிறது. அந்த நிலையில் உள்ள லாம்ப்டா வெளிப்பாடு (செயல்பாடு) ஒரு மதிப்பு.



ஸ்ட்ரிங் லிட்டரல் தவிர எந்த இலக்கியமும் ஒரு ப்ராவல்யூ ஆகும். லாம்ப்டா வெளிப்பாடு ஒரு சிறப்பு செயல்பாட்டு வடிவமைப்பாகும், இது குறியீட்டில் நேரடியாக பொருந்தும். இது ஒரு அநாமதேய (பெயரிடப்படாத) செயல்பாடு. இந்த கட்டுரை புதிய சி ++ முதன்மை வெளிப்பாட்டை விளக்குகிறது, இது லாம்ப்டா வெளிப்பாடு என்று அழைக்கப்படுகிறது. இந்த கட்டுரையைப் புரிந்துகொள்ள C ++ இல் அடிப்படை அறிவு தேவை.



கட்டுரை உள்ளடக்கம்

லம்ப்டா வெளிப்பாட்டின் விளக்கம்

பின்வரும் நிரலில், ஒரு லாம்ப்டா வெளிப்பாடான ஒரு செயல்பாடு, ஒரு மாறிக்கு ஒதுக்கப்பட்டுள்ளது:





#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

ஆட்டோfn= [](intநிறுத்து)

{

intபதில்=நிறுத்து+ 3;

திரும்பபதில்;

};


intமுக்கிய()

{

ஆட்டோமாறுபாடு=fn(2);

செலவு <<மாறுபாடு<< ' n';


திரும்ப 0;

}

வெளியீடு:

5

முக்கிய () செயல்பாட்டிற்கு வெளியே, மாறி, fn உள்ளது. அதன் வகை ஆட்டோ. இந்த சூழ்நிலையில் ஆட்டோ என்பது உண்மையான வகை, அதாவது int அல்லது மிதவை போன்றது, அசைன்மென்ட் ஆபரேட்டரின் (=) சரியான செயல்பாட்டால் தீர்மானிக்கப்படுகிறது. அசைன்மென்ட் ஆபரேட்டரின் வலது பக்கத்தில் ஒரு லாம்ப்டா வெளிப்பாடு உள்ளது. லாம்ப்டா வெளிப்பாடு என்பது முந்தைய வருவாய் வகை இல்லாத செயல்பாடு ஆகும். சதுர அடைப்புக்குறிகளின் பயன்பாடு மற்றும் நிலையை கவனிக்கவும், []. செயல்பாடு 5, ஒரு எண்ணை வழங்குகிறது, இது fn க்கான வகையை தீர்மானிக்கும்.



முக்கிய () செயல்பாட்டில், அறிக்கை உள்ளது:

ஆட்டோமாறுபாடு=fn(2);

இதன் பொருள், fen main () க்கு வெளியே, ஒரு செயல்பாட்டிற்கான அடையாளங்காட்டியாக முடிகிறது. அதன் மறைமுக அளவுருக்கள் லாம்ப்டா வெளிப்பாட்டின் அளவுருக்கள். Variab க்கான வகை தானாக உள்ளது.

லம்ப்டா வெளிப்பாடு ஒரு அரைப்புள்ளியுடன் முடிவடைகிறது, வர்க்கம் அல்லது ஸ்ட்ரக்ட் வரையறை போலவே, ஒரு அரைப்புள்ளியுடன் முடிவடைகிறது.

பின்வரும் நிரலில், லாம்ப்டா எக்ஸ்பிரஷனாக இருக்கும் ஒரு செயல்பாடு, 5 இன் மதிப்பைத் திருப்பித் தருவது, மற்றொரு செயல்பாட்டிற்கு ஒரு வாதம் ஆகும்:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

வெற்றிடம்otherfn(intஎண் 1,int (*ptr)(int))

{

intஎண் 2= (*ptr)(2);

செலவு <<எண் 1<< '' <<எண் 2<< ' n';

}


intமுக்கிய()

{

otherfn(4,[](intநிறுத்து)

{

intபதில்=நிறுத்து+ 3;

திரும்பபதில்;

});


திரும்ப 0;
}

வெளியீடு:

நான்கு. ஐந்து

இங்கு இரண்டு செயல்பாடுகள் உள்ளன, லாம்ப்டா வெளிப்பாடு மற்றும் மற்ற எஃப்என் () செயல்பாடு. லாம்ப்டா வெளிப்பாடு என்பது மற்ற (இரண்டாவது) வாதமாகும், இது பிரதான () என்று அழைக்கப்படுகிறது. இந்த அழைப்பில் லாம்ப்டா செயல்பாடு (வெளிப்பாடு) ஒரு அரைப்புள்ளியுடன் முடிவடையாது என்பதை நினைவில் கொள்க, ஏனெனில், இங்கே இது ஒரு வாதம் (தனித்த செயல்பாடு அல்ல).

மற்ற எஃப்என் () செயல்பாட்டின் வரையறையில் லாம்ப்டா செயல்பாட்டு அளவுரு ஒரு செயல்பாட்டிற்கான ஒரு சுட்டிக்காட்டி ஆகும். சுட்டிக்காட்டிக்கு ptr என்ற பெயர் உள்ளது. லாம்ப்டா செயல்பாட்டை அழைக்க மற்ற எஃப்என் () வரையறையில் பிடிஆர் என்ற பெயர் பயன்படுத்தப்படுகிறது.

அறிக்கை,

intஎண் 2= (*ptr)(2);

மற்ற எஃப்என் () வரையறையில், இது லாம்ப்டா செயல்பாட்டை 2. ஒரு வாதத்துடன் அழைக்கிறது

சி ++ திரும்ப அழைப்பு செயல்பாட்டு திட்டத்தில் லாம்ப்டா செயல்பாட்டை எவ்வாறு பயன்படுத்தலாம் என்பதையும் மேலே உள்ள நிகழ்ச்சி காட்டுகிறது.

லம்ப்டா வெளிப்பாட்டின் பகுதிகள்

ஒரு பொதுவான லாம்ப்டா செயல்பாட்டின் பகுதிகள் பின்வருமாறு:

[] () {}
  • [] பிடிப்பு விதி. அதில் பொருட்கள் இருக்கலாம்.
  • () அளவுரு பட்டியலுக்கானது.
  • {} செயல்பாட்டு உடலுக்கானது. செயல்பாடு தனியாக இருந்தால், அது அரைப்புள்ளியுடன் முடிவடைய வேண்டும்.

பிடிப்புகள்

லாம்ப்டா செயல்பாட்டு வரையறை ஒரு மாறிக்கு ஒதுக்கப்படலாம் அல்லது வேறு செயல்பாட்டு அழைப்பிற்கான வாதமாகப் பயன்படுத்தப்படலாம். அத்தகைய செயல்பாட்டு அழைப்பிற்கான வரையறை ஒரு அளவுருவாக இருக்க வேண்டும், ஒரு செயல்பாட்டிற்கு ஒரு சுட்டிக்காட்டி, லாம்ப்டா செயல்பாட்டு வரையறைக்கு தொடர்புடையது.

லாம்ப்டா செயல்பாட்டு வரையறை சாதாரண செயல்பாட்டு வரையறையிலிருந்து வேறுபட்டது. இது உலகளாவிய அளவில் ஒரு மாறிக்கு ஒதுக்கப்படலாம்; இந்த ஃபங்க்ஷன்-அசைன்ட்-டு-வேரியபிள் மற்றொரு செயல்பாட்டிற்குள் குறியிடப்படலாம். உலகளாவிய நோக்கம் மாறிக்கு ஒதுக்கப்படும் போது, ​​அதன் உடல் உலகளாவிய நோக்கத்தில் மற்ற மாறிகளைப் பார்க்க முடியும். ஒரு இயல்பான செயல்பாட்டு வரையறைக்குள் ஒரு மாறிக்கு ஒதுக்கப்படும் போது, ​​அதன் உடல் செயல்பாட்டு நோக்கத்தில் உள்ள மற்ற மாறிகளைப் பிடிப்பு உட்பிரிவின் உதவியுடன் மட்டுமே பார்க்க முடியும், [].

பிடிப்பு விதி [], லாம்ப்டா-அறிமுகம் என்றும் அழைக்கப்படுகிறது, சுற்றியுள்ள (செயல்பாடு) நோக்கத்திலிருந்து மாறிகளை லம்ப்டா வெளிப்பாட்டின் செயல்பாட்டு உடலுக்கு அனுப்ப அனுமதிக்கிறது. லாம்ப்டா எக்ஸ்பிரஷனின் செயல்பாட்டு உடல் பொருளைப் பெறும்போது மாறியைப் பிடிக்கும் என்று கூறப்படுகிறது. பிடிப்பு விதி [] இல்லாமல், ஒரு மாறியை சுற்றியுள்ள நோக்கத்திலிருந்து லம்ப்டா வெளிப்பாட்டின் செயல்பாட்டு உடலுக்கு அனுப்ப முடியாது. பின்வரும் நிரல் இதை முக்கிய () செயல்பாட்டு நோக்கத்துடன், சுற்றியுள்ள நோக்கமாக விளக்குகிறது:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()

{

intஐடி= 5;


ஆட்டோfn= [ஐடி]()

{

செலவு <<ஐடி<< ' n';

};

fn();


திரும்ப 0;

}

வெளியீடு ஆகும் 5 . பெயர், ஐடி, உள்ளே [] இல்லாமல், லாம்ப்டா வெளிப்பாடு முக்கிய () செயல்பாட்டு நோக்கத்தின் மாறி ஐடியைப் பார்த்திருக்காது.

குறிப்பு மூலம் பிடித்தல்

பிடிப்பு உட்பிரிவின் மேற்கண்ட எடுத்துக்காட்டு மதிப்பு மூலம் பிடிக்கிறது (கீழே உள்ள விவரங்களைப் பார்க்கவும்). குறிப்பு மூலம் பிடிப்பதில், மாறியின் இருப்பிடம் (சேமிப்பு), எ.கா., மேலே உள்ள ஐடி, சுற்றியுள்ள நோக்கம், லாம்ப்டா செயல்பாட்டு உடலுக்குள் கிடைக்கிறது. எனவே, லாம்ப்டா செயல்பாட்டு உடலுக்குள் உள்ள மாறியின் மதிப்பை மாற்றுவது சுற்றியுள்ள நோக்கத்தில் அதே மாறியின் மதிப்பை மாற்றும். பிடிப்பு விதிமுறையில் மீண்டும் மீண்டும் வரும் ஒவ்வொரு மாறியும் இதை அடைய ஆம்ப்சாண்ட் (&) க்கு முன்னால் உள்ளது. பின்வரும் திட்டம் இதை விளக்குகிறது:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()

{

intஐடி= 5; மிதக்கஅடி= 2.3; கரிசா= 'TO';

ஆட்டோfn= [&ஐடி,&அடி,&சா]()

{

ஐடி= 6;அடி= 3.4;சா= 'பி';

};

fn();

செலவு <<ஐடி<< ',' <<அடி<< ',' <<சா<< ' n';

திரும்ப 0;

}

வெளியீடு:

6, 3.4, பி

லாம்ப்டா வெளிப்பாட்டின் செயல்பாட்டு உடலுக்குள் உள்ள மாறி பெயர்கள் லாம்ப்டா வெளிப்பாட்டிற்கு வெளியே உள்ள அதே மாறிகளுக்கானவை என்பதை உறுதிப்படுத்துகிறது.

மதிப்பு மூலம் பிடித்தல்

மதிப்பின் அடிப்படையில் பிடிப்பதில், மாறி இருக்கும் இடத்தின் நகல், சுற்றியுள்ள நோக்கம், லாம்ப்டா செயல்பாட்டு உடலுக்குள் கிடைக்கிறது. லாம்ப்டா ஃபங்க்ஷன் பாடி உள்ளே உள்ள ஒரு நகல் என்றாலும், அதன் மதிப்பை இப்போது உடலுக்குள் மாற்ற முடியாது. மதிப்பின் மூலம் கைப்பற்றுவதை அடைய, பிடிப்பு உட்பிரிவில் மீண்டும் மீண்டும் வரும் ஒவ்வொரு மாறியும் எதற்கும் முன் இல்லை. பின்வரும் திட்டம் இதை விளக்குகிறது:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()

{

intஐடி= 5; மிதக்கஅடி= 2.3; கரிசா= 'TO';

ஆட்டோfn= [id, ft, ch]()

{

// ஐடி = 6; அடி = 3.4; ch = 'B';

செலவு <<ஐடி<< ',' <<அடி<< ',' <<சா<< ' n';

};

fn();

ஐடி= 6;அடி= 3.4;சா= 'பி';

செலவு <<ஐடி<< ',' <<அடி<< ',' <<சா<< ' n';

திரும்ப 0;

}

வெளியீடு:

5, 2.3, ஏ

6, 3.4, பி

கருத்து காட்டி அகற்றப்பட்டால், நிரல் தொகுக்கப்படாது. லம்ப்டா வெளிப்பாட்டின் செயல்பாட்டு உடலின் வரையறைக்குள் உள்ள மாறிகளை மாற்ற முடியாது என்று கம்பைலர் ஒரு பிழை செய்தியை வெளியிடும். லாம்ப்டா செயல்பாட்டிற்குள் மாறிகளை மாற்ற முடியாது என்றாலும், மேலே உள்ள நிரலின் வெளியீடு காண்பிப்பது போல, அவற்றை லாம்ப்டா செயல்பாட்டிற்கு வெளியே மாற்றலாம்.

கலவை பிடிப்புகள்

பின்வரும் நிரல் காண்பிப்பது போல குறிப்பு மூலம் பிடித்தல் மற்றும் மதிப்பின் மூலம் பிடித்தல் ஆகியவை கலக்கப்படலாம்:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()

{

intஐடி= 5; மிதக்கஅடி= 2.3; கரிசா= 'TO'; பூல்bl= உண்மை;


ஆட்டோfn= [ஐடி, அடி,&ch,&bl]()

{

சா= 'பி';bl= பொய்;

செலவு <<ஐடி<< ',' <<அடி<< ',' <<சா<< ',' <<bl<< ' n';

};

fn();


திரும்ப 0;

}

வெளியீடு:

5, 2.3, பி, 0

அனைத்தும் கைப்பற்றப்படும் போது, ​​குறிப்பு மூலம்:

கைப்பற்றப்பட வேண்டிய அனைத்து மாறிகளும் குறிப்பு மூலம் பிடிக்கப்பட்டால், பிடிப்பு பிரிவில் ஒன்று & போதுமானது. பின்வரும் திட்டம் இதை விளக்குகிறது:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()

{

intஐடி= 5; மிதக்கஅடி= 2.3; கரிசா= 'TO'; பூல்bl= உண்மை;


ஆட்டோfn= [&]()

{

ஐடி= 6;அடி= 3.4;சா= 'பி';bl= பொய்;

};

fn();

செலவு <<ஐடி<< ',' <<அடி<< ',' <<சா<< ',' <<bl<< ' n';


திரும்ப 0;

}

வெளியீடு:

6, 3.4, பி, 0

சில மாறிகள் குறிப்பு மூலமும் மற்றவை மதிப்பின் மூலமும் பிடிக்கப்பட வேண்டும் என்றால், ஒன்று & அனைத்து குறிப்புகளையும் குறிக்கும், மீதமுள்ளவை ஒவ்வொன்றும் எதற்கும் முந்தாது, பின்வரும் நிரல் காட்டுவது போல்:

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()

{

intஐடி= 5; மிதக்கஅடி= 2.3; கரிசா= 'TO'; பூல்bl= உண்மை;


ஆட்டோfn= [&, ஐடி, அடி]()

{

சா= 'பி';bl= பொய்;

செலவு <<ஐடி<< ',' <<அடி<< ',' <<சா<< ',' <<bl<< ' n';

};

fn();


திரும்ப 0;

}

வெளியீடு:

5, 2.3, பி, 0

குறிப்புப் பிரிவில் & தனியாக (அதாவது, மற்றும் ஒரு அடையாளங்காட்டியால் பின்பற்றப்படாதது) முதல் எழுத்து இருக்க வேண்டும் என்பதை நினைவில் கொள்க.

அனைத்தும் கைப்பற்றப்படும் போது, ​​மதிப்புக்கு ஏற்ப:

கைப்பற்றப்பட வேண்டிய அனைத்து மாறிகள் மதிப்பால் பிடிக்கப்பட வேண்டும் என்றால், பிடிப்பு பிரிவில் ஒரே ஒரு = போதுமானது. பின்வரும் திட்டம் இதை விளக்குகிறது:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()
{

intஐடி= 5; மிதக்கஅடி= 2.3; கரிசா= 'TO'; பூல்bl= உண்மை;


ஆட்டோfn= [=]()

{

செலவு <<ஐடி<< ',' <<அடி<< ',' <<சா<< ',' <<bl<< ' n';

};

fn();


திரும்ப 0;


}

வெளியீடு:

5, 2.3, ஏ, 1

குறிப்பு : = இப்போது வரை படிக்க மட்டுமே உள்ளது.

சில மாறிகள் மதிப்பின் மூலமும் மற்றவை குறிப்பு மூலமும் பிடிக்கப்பட வேண்டும் என்றால், ஒன்று = படிக்க மட்டுமே நகலெடுக்கப்பட்ட அனைத்து மாறிகளையும் குறிக்கும், மீதமுள்ளவை ஒவ்வொன்றும் & பின்வரும் நிரல் காண்பிப்பது போல்:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

intமுக்கிய()

{

intஐடி= 5; மிதக்கஅடி= 2.3; கரிசா= 'TO'; பூல்bl= உண்மை;


ஆட்டோfn= [=,&ch,&bl]()

{

சா= 'பி';bl= பொய்;

செலவு <<ஐடி<< ',' <<அடி<< ',' <<சா<< ',' <<bl<< ' n';

};

fn();


திரும்ப 0;

}

வெளியீடு:

5, 2.3, பி, 0

பிடிப்பு விதிமுறையில் = முதல் எழுத்து மட்டுமே இருக்க வேண்டும் என்பதை நினைவில் கொள்க.

லம்ப்டா எக்ஸ்பிரஷனுடன் கிளாசிக்கல் கால்பேக் செயல்பாட்டுத் திட்டம்

லாம்ப்டா வெளிப்பாட்டுடன் கிளாசிக்கல் கால்பேக் செயல்பாட்டுத் திட்டத்தை எவ்வாறு செய்ய முடியும் என்பதை பின்வரும் திட்டம் காட்டுகிறது:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

கரி *வெளியீடு;


ஆட்டோசிபிஏ= [](கரிவெளியே[])

{

வெளியீடு=வெளியே;

};



வெற்றிடம்mainFunc(கரிஉள்ளீடு[],வெற்றிடம் (*க்கான)(கரி[]))

{

(*க்கான)(உள்ளீடு);

செலவு<<'முக்கிய செயல்பாட்டிற்கு'<<' n';

}


வெற்றிடம்fn()

{

செலவு<<'இப்போது'<<' n';

}


intமுக்கிய()

{

கரிஉள்ளீடு[] = 'திரும்ப அழைக்கும் செயல்பாட்டிற்கு';

mainFunc(உள்ளீடு, சிபிஏ);

fn();

செலவு<<வெளியீடு<<' n';



திரும்ப 0;

}

வெளியீடு:

முக்கிய செயல்பாட்டிற்கு

இப்போது

திரும்ப அழைக்கும் செயல்பாட்டிற்கு

ஒரு லம்ப்டா எக்ஸ்பிரஷன் வரையறை உலகளாவிய நோக்கத்தில் ஒரு மாறியிற்கு ஒதுக்கப்படும் போது, ​​அதன் செயல்பாட்டு அமைப்பு உலகளாவிய மாறிகளைப் பிடிப்பு விதிமுறையைப் பயன்படுத்தாமல் பார்க்க முடியும் என்பதை நினைவில் கொள்க.

பின்தங்கிய-திரும்பும் வகை

லாம்ப்டா எக்ஸ்பிரஷனின் ரிட்டர்ன் வகை தானாக உள்ளது, அதாவது கம்பைலர் ரிட்டர்ன் எக்ஸ்ப்ரெஷனில் இருந்து ரிட்டர்ன் வகையை தீர்மானிக்கிறது (இருந்தால்). புரோகிராமர் உண்மையில் திரும்பும் வகையைக் குறிப்பிட விரும்பினால், பின்வரும் நிரலில் உள்ளதைப் போல அவர் அதைச் செய்வார்:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

ஆட்டோfn= [](intநிறுத்து) -> int

{

intபதில்=நிறுத்து+ 3;

திரும்பபதில்;

};


intமுக்கிய()

{

ஆட்டோமாறுபாடு=fn(2);

செலவு <<மாறுபாடு<< ' n';


திரும்ப 0;

}

வெளியீடு 5. அளவுரு பட்டியலுக்குப் பிறகு, அம்பு ஆபரேட்டர் தட்டச்சு செய்யப்படுகிறது. இதைத் தொடர்ந்து திரும்பும் வகை (இந்த வழக்கில் int).

மூடல்

பின்வரும் குறியீட்டுப் பகுதியைக் கவனியுங்கள்:

கட்டமைப்புகிளா

{

intஐடி= 5;

கரிசா= 'க்கு';

}ஆப்ஜெக்ட் 1, ஆப்ஜெக்ட் 2;

இங்கே, Cla என்பது ஸ்ட்ரக்ட் வகுப்பின் பெயர். Obj1 மற்றும் ஆப்ஜெக்ட் 2 ஆகிய இரண்டு பொருள்கள் ஸ்ட்ரக்ட் வகுப்பிலிருந்து உடனடியாகப் பெறப்படும். லாம்ப்டா வெளிப்பாடு செயல்பாட்டில் ஒத்திருக்கிறது. லாம்ப்டா செயல்பாட்டு வரையறை என்பது ஒரு வகையான வர்க்கமாகும். லாம்ப்டா செயல்பாடு (அழைப்பு) என்று அழைக்கப்படும் போது, ​​ஒரு பொருள் அதன் வரையறையிலிருந்து உடனடியாக நிறுவப்படுகிறது. இந்த பொருள் மூடல் என்று அழைக்கப்படுகிறது. லாம்ப்டா செய்ய வேண்டிய வேலையை மூடுவதுதான்.

இருப்பினும், மேலே உள்ள ஸ்ட்ரக்ட் போன்ற லாம்ப்டா வெளிப்பாட்டை குறியிடுவதால் ஆப்ஜெக்ட் 1 மற்றும் ஆப்ஜெக்ட் 2 ஆகியவை தொடர்புடைய அளவுருக்களின் வாதங்களால் மாற்றப்படும். பின்வரும் திட்டம் இதை விளக்குகிறது:

#சேர்க்கிறது

பயன்படுத்தி பெயர்வெளிமணி;

ஆட்டோfn= [](intபரம் 1,intபரம் 2)

{

intபதில்=பரம் 1+பரம் 2;

திரும்பபதில்;

} (2,3);


intமுக்கிய()

{

ஆட்டோஎங்கே=fn;

செலவு <<எங்கே<< ' n';


திரும்ப 0;

}

வெளியீடு 5. வாதங்கள் அடைப்புக்குறிக்குள் 2 மற்றும் 3 ஆகும். லாம்ப்டா வெளிப்பாடு செயல்பாடு அழைப்பு, fn, லாம்ப்டா செயல்பாடு வரையறையின் முடிவில் வாதங்கள் ஏற்கனவே குறியிடப்பட்டிருப்பதால் எந்த வாதத்தையும் எடுக்காது என்பதை நினைவில் கொள்க.

முடிவுரை

லாம்ப்டா வெளிப்பாடு ஒரு அநாமதேய செயல்பாடு. இது இரண்டு பகுதிகளாக உள்ளது: வர்க்கம் மற்றும் பொருள். அதன் வரையறை ஒரு வகை வர்க்கம். வெளிப்பாடு அழைக்கப்படும் போது, ​​ஒரு பொருள் வரையறையிலிருந்து உருவாகிறது. இந்த பொருள் மூடல் என்று அழைக்கப்படுகிறது. லாம்ப்டா செய்ய வேண்டிய வேலையை மூடுவதுதான்.

லாம்ப்டா வெளிப்பாடு ஒரு வெளிப்புற செயல்பாட்டு நோக்கத்திலிருந்து ஒரு மாறியைப் பெற, அதன் செயல்பாட்டு உடலுக்கு வெற்று அல்லாத பிடிப்பு விதி தேவை.