Scala - கணினி மொழியில் ஹைக்கூ

Sunday, September 23, 2012

ஸ்காலா (Scala) Scalable Language  (நீட்சிக்ககூடிய மொழி) என்பதின் சுருக்கம். ஒரு வரியில் எழுதும் நிரல்களிலிருந்து பல்கிப்பெருகிப் பல கணினிகளில் ஒருசேர இயங்கும் மென்பொருள்கள் வரை அனைத்து விதப் பணிகளையும் இம்மொழியில் எழுதும் விதமாக வடிவமைக்கப்பட்டதால் இப்பெயர் இடப்பட்டது. இதனை உருவாக்கியவர் மார்டின் ஆர்டஸ்கி எனும் ஜெர்மனியர்.

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

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

உதாரணமாக இரண்டு கேள்விகள்.

ஒன்று பாஸ்கல் முக்கோணத்தில், கிடைவரிசை எண்ணும் நிலை வரிசை எண்ணும் கொடுத்தால், அந்த தானத்தில் உள்ள எண் என்ன என்பதைக் கணிக்கவேண்டும். நி.வ 3, கி.வ 2 - விடை 3. (முதல் வரி 0 ல் தொடங்கும்)

     1
    1 1
   1 2 1
  1 3 3 1
 1 4 6 4 1

மற்றொன்று, ஒரு தொகையும், காசு இனங்களும் கொடுத்தால், மொத்தம் எத்தனை வழிகளில் அந்த காசுக்களைக் கொண்டு தொகையை அடையலாம் என்பது. உதாரணமாக: தொகை: 4 ரூபாய், காசு இனங்கள் 1ரூ மற்றும் 2ரூ. விடை 3. 1 + 1 + 1 + 1, 1 + 1 + 2, 2 +2.

ஸ்காலாவில், இவற்றுக்கு முறையே இரண்டு வரி மற்றும் மூன்று வரிகளில் சரியான நிரல்களை எழுத முடிந்தது. அவற்றை பார்க்கும் போது ஹைக்கூவை அறிந்த பரவசம் கிடைக்கிறது.

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

உ.ம்:

Problem 1
Add all the natural numbers below one thousand that are multiples of 3 or 5.*
val r = (1 until 1000).view.filter(n => n % 3 == 0 || n % 5 == 0).sum

தொடர்புடைய சுட்டிகள்: