මගේ සීමිත අවබෝධය එවැනි ය:
1) අර්ධ ක්රියාකාරී යෙදුම
අර්ධ ශ්රිත යෙදුම යනු අඩු තර්ක සංඛ්යාවක් ගන්නා ශ්රිතයක් නැවත ලබා දීමේ ක්රියාවලියයි. ඔබ තර්ක 3 න් 2 ක් සපයන්නේ නම්, එය 3-2 = 1 පරාමිතියක් ගන්නා ශ්රිතයක් නැවත ලබා දෙනු ඇත. ඔබ තර්ක 3 න් 1 ක් ලබා දෙන්නේ නම්, එය තර්ක 3-1 = 2 ක් ගන්නා ශ්රිතයක් නැවත ලබා දෙනු ඇත. ඔබට අවශ්ය නම්, ඔබට තර්ක 3 න් 3 ක් අර්ධ වශයෙන් යෙදිය හැකි අතර එය කිසිදු තර්කයක් නොගන්නා ශ්රිතයක් නැවත ලබා දෙනු ඇත.
එබැවින් පහත සඳහන් ශ්රිතය ලබා දී ඇත:
f(x,y,z) = x + y + z;
1 සිට x දක්වා බන්ධනය වන විට සහ ඉහත ශ්රිතයට එය අර්ධ වශයෙන් යොදන විට f(x,y,z)
ඔබට ලැබෙනුයේ:
f(1,y,z) = f'(y,z);
කොහෙද: f'(y,z) = 1 + y + z;
දැන් ඔබ y සිට 2 දක්වා සහ z සිට 3 දක්වා බන්ධනය කර අර්ධ වශයෙන් අයදුම් f'(y,z)
කරන්නේ නම් ඔබට ලැබෙනු ඇත:
f'(2,3) = f''();
කොහෙද : f''() = 1 + 2 + 3
;
දැන් ඕනෑම අවස්ථාවක, ඔබට ඇගයීමට තෝරා ගත හැකිය f
, f'
හෝ f''
. එබැවින් මට කළ හැකිය:
print(f''()) // and it would return 6;
හෝ
print(f'(1,1)) // and it would return 3;
2) කරිං
අනෙක් අතට ව්යංජන යනු ශ්රිතයක් එක් තර්ක ශ්රිතයක කැදැලි දාමයකට බෙදීමේ ක්රියාවලියයි. ඔබට කිසි විටෙකත් තර්ක 1 කට වඩා ලබා දිය නොහැක, එය එකක් හෝ බිංදුවකි.
එබැවින් එකම ශ්රිතයක් ලබා දී ඇත:
f(x,y,z) = x + y + z;
ඔබ එය ව්යංජන කළහොත් ඔබට කාර්යයන් 3 ක දාමයක් ලැබෙනු ඇත:
f'(x) -> f''(y) -> f'''(z)
කොහෙද:
f'(x) = x + f''(y);
f''(y) = y + f'''(z);
f'''(z) = z;
දැන් ඔබට කතා නම් f'(x)
සමග x = 1
:
f'(1) = 1 + f''(y);
ඔබට නව කාර්යයක් ලබා දෙනු ලැබේ:
g(y) = 1 + f''(y);
ඔබ අමතන්නේ නම් g(y)
සමග y = 2
:
g(2) = 1 + 2 + f'''(z);
ඔබට නව කාර්යයක් ලබා දෙනු ලැබේ:
h(z) = 1 + 2 + f'''(z);
අවසාන වශයෙන් ඔබ කියන්නේ නම්, h(z)
සමග z = 3
:
h(3) = 1 + 2 + 3;
ඔබ ආපසු එනු 6
ලැබේ.
3) වසා දැමීම
අවසාන වශයෙන්, වසා දැමීම යනු ශ්රිතයක් සහ දත්ත එක් ඒකකයක් ලෙස ග්රහණය කර ගැනීමේ ක්රියාවලියයි. ශ්රිතයක් වැසීම සඳහා අසීමිත තර්ක ගණනකට 0 ක් ගතවනු ඇත, නමුත් එය වෙත නොපැමිණෙන දත්ත පිළිබඳව ද එය දැන සිටියි.
නැවතත්, එකම ශ්රිතයක් ලබා දී ඇත:
f(x,y,z) = x + y + z;
ඔබට ඒ වෙනුවට වසා දැමීමක් ලිවිය හැකිය:
f(x) = x + f'(y, z);
කොහෙද:
f'(y,z) = x + y + z;
f'
වසා ඇත x
. f'
ඇතුළත ඇති x හි අගය කියවිය හැකි අර්ථය f
.
එසේ නම් ඔබ ඇමතීමට සිටි f
සමග x = 1
:
f(1) = 1 + f'(y, z);
ඔබට වසා දැමීමක් ලැබෙනු ඇත:
closureOfF(y, z) =
var x = 1;
f'(y, z);
දැන් ඔබ කැඳවා නම් closureOfF
සමග y = 2
හා z = 3
:
closureOfF(2, 3) =
var x = 1;
x + 2 + 3;
එය නැවත පැමිණේ 6
නිගමනය
ව්යංජන, අර්ධ යෙදුම සහ වසා දැමීම් සියල්ලම තරමක් සමාන වන අතර ඒවා ශ්රිතයක් තවත් කොටස් වලට දිරාපත් කරයි.
ව්යංජන මඟින් තනි තර්කවල ශ්රිත නැවත ලබා දෙන තනි තර්කවල කැදැලි ශ්රිත බවට බහුවිධ තර්කවල ශ්රිතයක් දිරාපත් වේ. එක් හෝ අඩු තර්කයක ශ්රිතයක් ව්යංජන කිරීමෙන් කිසිදු තේරුමක් නැත.
අර්ධ යෙදුම මඟින් බහු තර්ක වල ශ්රිතයක් අඩු තර්ක වල ශ්රිතයක් බවට දිරාපත් වන අතර ඒවායේ දැන් නැතිවී ඇති තර්ක සැපයූ අගය සඳහා ආදේශ කර ඇත.
වසා දැමීම ශ්රිතයක් ශ්රිතයක් ලෙස දිරාපත් වන අතර දත්ත සමුදායක් තුළට නොපැමිණෙන ශ්රිතයේ විචල්යයන් ඇගයීමට ලක් කළ විට ඊට එරෙහිව බැඳීමට අගයක් සොයා ගත හැකිය.
මේ සියල්ල අවුල් සහගත කාරණය නම්, අනෙක් ඒවා අනු කාණ්ඩයක් ක්රියාත්මක කිරීම සඳහා එක් එක් වර්ගයට යොදා ගත හැකි වීමයි. එබැවින් සාරාංශයක් ලෙස, ඒවා සියල්ලම ක්රියාත්මක කිරීමේ විස්තරයකි. ඒවා සියල්ලම සමාන අගයක් ලබා දෙන අතර එමඟින් ඔබට සියලු අගයන් පෙරට ගෙන ඒමට අවශ්ය නොවන අතර එමඟින් ඔබ ශ්රිතයේ කොටසක් නැවත භාවිතා කළ හැකිය.
අනාවරණය
මම කිසිසේත් මාතෘකාව පිළිබඳ විශේෂ expert යෙක් නොවෙමි, මම මෑතකදී මේවා ගැන ඉගෙන ගැනීමට පටන් ගෙන ඇත්තෙමි, එබැවින් මම මගේ වර්තමාන අවබෝධය ලබා දෙමි, නමුත් එය පෙන්වා දීමට මා ඔබට ආරාධනා කරන වැරදි තිබිය හැකි අතර, මම / ලෙස නිවැරදි කරමි මම ඕනෑම දෙයක් සොයා ගතිමි.