Tag Archive: functional programming

செயற்கூறிய நிரலாக்கம் – செயற்கூறிய ஜாவாஸ்கிரிப்ட்டு – பகுதி 10

செயற்கூறிய நிரலாக்க அடிப்படைகள் குறித்து கடந்தசிலவாரங்களாக படித்துவருகிறோம். இதனை அன்றாட பயன்பாட்டில் எப்படி பொருத்துவது? இன்றளவிலும் கூட, செயற்கூறிய நிரலாக்கமொழிகளைப் பயன்படுத்தி நிரலெழுதும் வாய்ப்பு நம்மில் பலருக்கு கிடைப்பதில்லை. ஆனால், பெரும்பாலான வலைச்செயலிகள் உருவாக்கும் நிரலர்கள் ஜாவாஸ்கிரிப்ட்டை அன்றாடம் பயன்படுத்தி நிரலெழுதுகின்றனர். எனவே, நாம் இதுவரை கற்ற கோட்பாடுகளை ஜாவாஸ்கிரிப்ட்டில் எப்படி பயன்படுத்துவது என இப்பகுதியில்…
Read more

செயற்கூறிய நிரலாக்கம் – தரவின வரையறை – பகுதி 9

இயல்நிலைமொழிகளில் (Static languages) ஒரு செயற்கூற்றின் வரையறையோடு, தரவினங்களும் (data types) பிணைக்கப்பட்டுள்ளதை, பின்வரும் எடுத்துக்காட்டில் காணலாம். public static String quote(String str) { return “‘” + str + “‘”; } பொதுப்படையான தரவினங்களைக் (generic types) குறிக்கும்போது, இது இன்னும் சிக்கலானதாகிறது. private final Map<Integer, String> getPerson(Map<String, String>…
Read more

செயற்கூறிய நிரலாக்கம் – இயங்குவரிசை – பகுதி 8

பெரும்பாலான நிரல்கள் அல்லது செயலிகள் ஒற்றைஇழையைக் (single-threaded) கொண்டவையாகவே இருக்கின்றன. பலவிழைகளைக் (multi-threaded) கொண்ட நிரல்களில், இவ்விழைகள், ஒருகோப்பினை அணுகவோ, இணையத்திற்காகவோ காத்திருப்பதிலேயே நேரத்தை செலவழிக்கின்றன. இயல்பாகவே மனிதமூளை தான்செய்யவேண்டிய செயல்களை ஒன்றன்பின் ஒன்றாக செய்யவே திட்டமிடுகிறது. நம் எல்லோருக்கும் பரிச்சயமான சுவையானவொரு ரொட்டி தயாரிக்கும் எடுத்துக்காட்டுடன் இதைப்புரிந்துகொள்ளலாம். இதற்கான படிநிலைகள்: இவ்வெடுத்துக்காட்டில் ஒன்றையொன்று சாராத…
Read more

செயற்கூறிய நிரலாக்கம் – பொதுவான செயற்கூறிய செயற்கூறுகள் – பகுதி 7

செயற்கூறிய நிரலாக்கமொழிகளில் பரவலாகப் பயன்படுத்தப்படும் மூன்று முக்கியசெயற்கூறுகளைப்பற்றி இப்பதிவில் தெரிந்துகொள்ளலாம். நமக்கு நன்கு பரிச்சயமான, எளிமையான ஜாவாஸ்கிரிப்ட்டு நிரலிலிருந்து தொடங்கலாம். இந்நிரலில் வழுவேதுமில்லை. ஆனால், இதற்குள் பெரும்பிரச்சனையொன்று அடங்கியிருக்கிறது. அதென்னவென்று கண்டறிய முடிகிறதா? இதுவொரு வார்ப்புநிரல் (Boilerplate code). ஒரு தீர்வைச்செயல்படுத்துவதற்கு இவை உதவுகின்றனவேயன்றி, இவற்றால் தீர்வினைத்தரமுடியாது. ஆனாலும் இதுபோன்ற கட்டளைகளை நாம் அன்றாடம் அதிகஅளவில்…
Read more

செயற்கூறிய நிரலாக்கம் – ஒற்றைஉள்ளீட்டாக்கம் – பகுதி 6

முந்தைய பகுதியில் mult மற்றும் add என்ற இருசெயற்கூறுகளைகளின் உள்ளீட்டுஉருபுகளின் எண்ணிக்கையின் வேறுபாட்டால், அவற்றைக்கொண்டு செயற்கூற்றுக்கலவையை உருவாக்கமுடியாமல் போனது. இங்கே add செயற்கூறு இரண்டு உள்ளீட்டுஉருபுகளை ஏற்கிறது. எனவே அதனை ஒற்றை உள்ளீட்டுஉருபை ஏற்கும் mult என்ற செயற்கூறோடு கலந்து புதிய செயற்கூற்றை வரையறுக்கமுடியாது. நமது mult5AfterAdd10 செயற்கூற்றுக்குத்தேவையான add10 செயற்கூற்றை add செயற்கூற்றிலிருந்து பின்வருமாறு…
Read more

செயற்கூறிய நிரலாக்கம் – செயற்கூறுகளின் கலவை – பகுதி 5

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

செயற்கூறிய நிரலாக்கம் – சூழச்சுருட்டு – பகுதி 4

Closureஐப்பற்றி அறிந்துகொள்வதற்கு முன்னதாக, அதைப்பயன்படுத்தும் ஓர் எளிய செயற்கூற்றைக்காணலாம். இவ்வெடுத்துக்காட்டில் grandParent என்ற செயற்கூறு, g1, g2 என்ற உள்ளீட்டு உருபுகளை ஏற்றுக்கொண்டு, g3 என்ற மாறியை வரையறுத்து, parent என்ற செயற்கூற்றைத் திருப்பியனுப்புகிறது. parent என்ற செயற்கூறு, p1, p2 என்ற உள்ளீட்டு உருபுகளை ஏற்கிறது. p3 என்ற மாறியை வரையறுக்கிறது. child என்ற…
Read more

செயற்கூறிய நிரலாக்கம் – உயர்வரிசை செயற்கூறுகள் – பகுதி 3

கீழேயுள்ள நிரலிலுள்ளதைப்போன்ற செயற்கூறுகளை நமது அன்றாட நிரலாக்கப்பணியில் கண்டிருப்போம். அடிப்படையில், இவ்விரு செயற்கூறுகளும் ஒரேவேலையைத்தான் செய்கின்றன. அதாவது, கொடுக்கப்பட்ட மதிப்பை (ssn / phone), ஒரு செங்கோவையைக்கொண்டு (RegularExpressions) சரிபார்த்து, அதன் விடையை அச்சிடுகின்றன. எனவே, இவ்விரு செயற்கூறுகளுக்குப்பதிலாக ஒரு செயற்கூற்றைமட்டும் வரையறுத்து, மாறுபடுகின்ற மதிப்புகளை உள்ளீட்டு உருபுகளாக அளிக்கலாம். இதனால் validateSsn, validatePhone என்ற…
Read more

செயற்கூறிய நிரலாக்கம் – நிலைமாறாத்தன்மை – பகுதி 2

முன்குறிப்பு: கருத்தனின் பரிந்துரைப்படி, Functional programming என்பதற்கு “செயற்கூறிய நிரலாக்கம்” என்ற பதத்தையே தொடர்ந்து பயன்படுத்துவோம். இந்த நிரலை முதன்முதலில் பயன்படுத்தியபோது, xம், (x + 1)ம் சமமாக இருக்கமுடியாதென்ற அடிப்படை கணித சமன்பாட்டை மறந்துவிட்டிருந்தோம். xன் மதிப்புடன் ஒன்றைக்கூட்டி, அதன் விடையை மீண்டும் xல் சேமிக்கவேண்டும் என்பதே, பிறமுக்கிய மொழிகளில் , இதன் பொருள். ஆனால்,…
Read more

செயல்பாட்டு நிரலாக்க அடிப்படைகள் – பகுதி 1

இதுநாள்வரையில் பொருள்நோக்குநிரலாக்கத்தைப் (object oriented programming) பயன்படுத்தியே நிரலெழுதி வருவோர், செயல்பாட்டு நிரலாக்கத்தைக் (functional programming) கற்றுக்கொள்ளவேண்டுமென்றால் அதன் அடிப்படைக்கருத்துக்களை அறிந்துகொள்ளவேண்டியது அவசியம். முதலில் இது சற்றே கடினமான விசயமாகத்தெரிந்தாலும், சரியான கோணத்திலிருந்து அணுகும்போது எளிமையானதாகவே இருக்கிறது. முதன்முதலில் ஒரு வாகனத்தை ஓட்டக்கற்றுக்கொள்ளும்போது மிகவும் சிரமப்பட்டு கற்றுக்கொள்கிறோம். பிறர் செய்வதைக்காணும்போது எளிமையாகத்தோன்றினாலும், நாமே செய்யும்போது நாம்…
Read more