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) கொண்ட நிரல்களில், இவ்விழைகள், ஒருகோப்பினை அணுகவோ, இணையத்திற்காகவோ காத்திருப்பதிலேயே நேரத்தை செலவழிக்கின்றன. இயல்பாகவே மனிதமூளை தான்செய்யவேண்டிய செயல்களை ஒன்றன்பின் ஒன்றாக செய்யவே திட்டமிடுகிறது. நம் எல்லோருக்கும் பரிச்சயமான சுவையானவொரு ரொட்டி தயாரிக்கும் எடுத்துக்காட்டுடன் இதைப்புரிந்துகொள்ளலாம். இதற்கான படிநிலைகள்: [code lang=”javascript”] ரொட்டியை…
Read more

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

செயற்கூறிய நிரலாக்கமொழிகளில் பரவலாகப் பயன்படுத்தப்படும் மூன்று முக்கியசெயற்கூறுகளைப்பற்றி இப்பதிவில் தெரிந்துகொள்ளலாம். நமக்கு நன்கு பரிச்சயமான, எளிமையான ஜாவாஸ்கிரிப்ட்டு நிரலிலிருந்து தொடங்கலாம். [code lang=”javascript”] for (var i = 0; i < something.length; ++i) { // do stuff } [/code] இந்நிரலில் வழுவேதுமில்லை. ஆனால், இதற்குள் பெரும்பிரச்சனையொன்று அடங்கியிருக்கிறது. அதென்னவென்று கண்டறிய…
Read more

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

முந்தைய பகுதியில் mult மற்றும் add என்ற இருசெயற்கூறுகளைகளின் உள்ளீட்டுஉருபுகளின் எண்ணிக்கையின் வேறுபாட்டால், அவற்றைக்கொண்டு செயற்கூற்றுக்கலவையை உருவாக்கமுடியாமல் போனது. [code lang=”javascript”] var add = (x, y) => x + y; var mult5 = value => value * 5; var mult5AfterAdd10 = y => mult5(add(10, y));…
Read more

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

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

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

Closureஐப்பற்றி அறிந்துகொள்வதற்கு முன்னதாக, அதைப்பயன்படுத்தும் ஓர் எளிய செயற்கூற்றைக்காணலாம். [code lang=”javascript”] function grandParent(g1, g2) { var g3 = 3; return function parent(p1, p2) { var p3 = 33; return function child(c1, c2) { var c3 = 333; return g1 + g2 +…
Read more

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

கீழேயுள்ள நிரலிலுள்ளதைப்போன்ற செயற்கூறுகளை நமது அன்றாட நிரலாக்கப்பணியில் கண்டிருப்போம். [code lang=”javascript”] function validateSsn(ssn) { if (/^\d{3}-\d{2}-\d{4}$/.exec(ssn)) console.log(‘Valid SSN’); else console.log(‘Invalid SSN’); } function validatePhone(phone) { if (/^\(\d{3}\)\d{3}-\d{4}$/.exec(phone)) console.log(‘Valid Phone Number’); else console.log(‘Invalid Phone Number’); } [/code] அடிப்படையில், இவ்விரு செயற்கூறுகளும் ஒரேவேலையைத்தான் செய்கின்றன. அதாவது,…
Read more

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

முன்குறிப்பு: கருத்தனின் பரிந்துரைப்படி, Functional programming என்பதற்கு “செயற்கூறிய நிரலாக்கம்” என்ற பதத்தையே தொடர்ந்து பயன்படுத்துவோம். [code lang=”javascript”] var x = 1; x = x + 1; [/code] இந்த நிரலை முதன்முதலில் பயன்படுத்தியபோது, xம், (x + 1)ம் சமமாக இருக்கமுடியாதென்ற அடிப்படை கணித சமன்பாட்டை மறந்துவிட்டிருந்தோம். xன் மதிப்புடன்…
Read more

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

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