Value restriction
ஹிண்ட்லி-மில்னர் வகை அனுமானம் மற்றும் கட்டாய அம்சங்களைக் கொண்ட நிரலாக்க மொழிகளில், குறிப்பாக எம். எல் நிரலாக்க மொழி குடும்பத்தில், மதிப்பு கட்டுப்பாடு என்பது அறிவிப்புகள் சொற்பொருள் மதிப்புகளாக இருந்தால் (விரிவாக்கம் அல்லாதவை என்றும் அழைக்கப்படுகின்றன) பாலிமார்பிக்கலாக மட்டுமே பொதுமைப்படுத்தப்படுகின்றன என்பதாகும். மதிப்பு கட்டுப்பாடு குறிப்பு செல்கள் பல்வேறு வகையான மதிப்புகளை வைத்திருப்பதைத் தடுக்கிறது மற்றும் வகை பாதுகாப்பைப் பாதுகாக்கிறது. பாதுகாப்பை வகைப்படுத்த ஒரு எதிர் உதாரணம் ஹிண்ட்லி-மில்னர் வகை அமைப்பில், வெளிப்பாடுகள் அளவுரு பன்முகத்தன்மை மூலம் பல வகைகளை வழங்கலாம். ஆனால் அப்பாவித்தனமாக குறிப்புகளுக்கு பல வகைகளை வழங்குவது பாதுகாப்பு வகையை உடைக்கிறது. எம்எல் போன்ற மொழிகளில் குறிப்புகள் மற்றும் தொடர்புடைய ஆபரேட்டர்களுக்கான தட்டச்சு விதிகள் பின்வருமாறு. ஆபரேட்டர்கள் பின்வரும் சொற்பொருள்களைக் கொண்டுள்ளனர்ஃ ஒரு மதிப்பை எடுத்து அந்த மதிப்பைக் கொண்ட ஒரு குறிப்பை உருவாக்குகிறது, (குறிப்பு) ஒரு குறிப்பை எடுத்து அந்த குறிப்பில் உள்ள மதிப்பைப் படிக்கிறது, மேலும் (பணி) ஒரு புதிய மதிப்பைக் கொண்டிருப்பதற்காக ஒரு குறிப்பைப் புதுப்பித்து அலகு வகையின் மதிப்பைத் தருகிறது. இவற்றைப் பொறுத்தவரை, பின்வரும் நிரல் c: = (fn x => x + 1) இல் உள்ள பூலியன் value.let வால்சி c = ரிஃப் (fn x => x) க்கு முழு எண்களுக்கான ஒரு செயல்பாட்டைப் பயன்படுத்துகிறது. மேலே உள்ள நிரல் வகை ஹிண்ட்லி-மில்னரைப் பயன்படுத்தி சரிபார்க்கிறது, ஏனெனில் c வகை கொடுக்கப்பட்டுள்ளது, இது c: = (fn x => x + 1) என்ற அசைன்மென்ட்டைத் தட்டச்சு செய்யும் போது உடனடியாக வகைப்படுத்தப்படுகிறது, மேலும் குறிப்பு! c உண்மை. மதிப்பு கட்டுப்பாடு மதிப்பு கட்டுப்பாட்டின் கீழ், வெளிப்பாடுகள் சொற்பொருள் மதிப்புகளாக இருந்தால் மட்டுமே பிணைக்கப்பட்ட வெளிப்பாடுகளின் வகைகள் பொதுமைப்படுத்தப்படுகின்றன. ரைட் தனது கட்டுரையில் பின்வருவனவற்றை சொற்பொருள் மதிப்புகள் என்று கருதுகிறார்ஃ மாறிலிகள், மாறிகள்,-வெளிப்பாடுகள் மற்றும் மதிப்புகளுக்கு பயன்படுத்தப்படும் கட்டமைப்பாளர்கள். செயல்பாடு மற்றும் ஆபரேட்டர் பயன்பாடுகள் மதிப்புகளாக கருதப்படுவதில்லை. குறிப்பாக, ஆபரேட்டரின் பயன்பாடுகள் பொதுமைப்படுத்தப்படவில்லை. சொற்பொருள் மதிப்புகளின் வகை மாறிகளை பொதுமைப்படுத்துவது பாதுகாப்பானது, ஏனெனில் அவற்றின் மதிப்பீடு ஒரு குறிப்புக்கு எழுதுவது போன்ற எந்த பக்க விளைவுகளையும் ஏற்படுத்தாது. மேற்கண்ட உதாரணம் பின்வருமாறு மதிப்பு கட்டுப்பாட்டின் கீழ் வகை சரிபார்ப்பவரால் நிராகரிக்கப்படுகிறது. முதல் சி வகை கொடுக்கப்பட்டுள்ளது. இந்த வகை பொதுமைப்படுத்தப்படவில்லை மற்றும் லெட் பைண்டிங்கின் உடலுக்கு தட்டச்சு சூழலில் ஒரு இலவச மாறி ஆகும். பணி தட்டச்சு செய்யப்படும்போது, சி வகை தட்டச்சு சூழலில் ஒருங்கிணைப்பு மூலம் வகையாக மாற்றப்படுகிறது. குறிப்பு! சி என தட்டச்சு செய்யப்படுகிறது, ஆனால் வகையின் மதிப்புக்கு பயன்படுத்தப்படுகிறது, மேலும் வகை சரிபார்ப்பவர் நிரலை நிராகரிக்கிறார். மேலும் காண்க ஹிண்ட்லி-மில்னர் வகை அனுமானங்கள் குறிப்புகள் மேட்ஸ் டோஃப்டே (1988). செயல்பாட்டு சொற்பொருள் மற்றும் பாலிமார்பிக் வகை அனுமானம். முனைவர் பட்ட ஆய்வறிக்கை. எம். டோஃப்டே (1990). "பாலிமார்பிக் குறிப்புகளுக்கான அனுமானத்தை தட்டச்சு செய்யுங்கள்". ஓ 'டூல் (1990). "குறிப்புக்காக சுருக்க விதிகளை தட்டச்சு செய்யுங்கள்ஃ புகழை அடைந்த நான்கு பேரின் ஒப்பீடு". சேவியர் லெரோய் & பியர் வெய்ஸ் (1991). "பாலிமார்பிக் வகை அனுமானம் மற்றும் பணி". பிஓபிஎல் '91. ஏ. கே. ரைட் (1992). "விளைவு அனுமானத்தின் மூலம் குறிப்புகளை தட்டச்சு செய்தல்". மை ஹோங், ஜான் சி. மிட்செல் மற்றும் ரமேஷ் விஸ்வநாதன் (1993). "நிலையான எம்எல்-என்ஜே பலவீனமான பாலிமார்பிசம் மற்றும் கட்டாய கட்டமைப்புகள்". ஆண்ட்ரூ ரைட் (1995). "எளிய கட்டாய பாலிமார்பிசம்". LISP மற்றும் குறியீட்டு கணக்கீட்டில், p. 343-356. ஜாக் கேரிக் (2004). "மதிப்பு வரம்பை தளர்த்துதல்". வெளி இணைப்புகள் மதிப்பு கட்டுப்பாடு-எஸ்எம்எல்97 இன் மதிப்பு கட்டுப்பாடு குறித்த எம்எல்டன் குறிப்புகள்-நிரலாக்க மொழிகளின் கோட்பாடுகள், ஜெஃப்ரி ஸ்மித், புளோரிடா சர்வதேச பல்கலைக்கழக வகை அனுமானம்