R একটি ডাইনামিকভাবে টাইপড ভাষা, তাই সাধারণভাবে ভ্যারিয়েবলের টাইপ উল্লেখ করার প্রয়োজন হয় না। পছন্দের অ্যাসাইনমেন্ট অপারেটর হলো <-
x <- 42
avogadro <- 6.02e23
mystr <- "Hello, World!"
<- এর বদলে = ব্যবহার করলে অনেক সময় কাজ হবে, তবে সব সময় নয়, এবং এটি খারাপ স্টাইল হিসেবে নিরুৎসাহিত করা হয়।
RStudio-তে কাজ করলে, কীবোর্ড শর্টকাট Alt-minus দিয়ে এটি লেখা যায়।
অপারেটরগুলো বেশিরভাগই প্রচলিত, তবে %/% আর %% খেয়াল করুন:
2 + 3 # 5
2 - 3 # -1
2 * 3 # 6
2 / 3 # 0.6666667
8 %/% 3 # 2 (integer division)
8 %% 3 # 2 (remainder)
2 ^ 3 # 8 (exponential)
R-এ # দিয়ে এক-লাইনের কমেন্ট শুরু হয়।
বহু-লাইনের কমেন্টের জন্য আলাদা কোনো সিনট্যাক্স নেই।
একটি ফাংশন ডিফাইন করতে:
squareit <- function(x) {
x * x
}
ফাংশনে শূন্য বা তার বেশি আর্গুমেন্ট থাকতে পারে, যা কমা দিয়ে আলাদা করা হয়।
function() এর সাথে প্রথম বন্ধনী () লাগে, এমনকি প্যারামিটার না থাকলেও।
ফাংশনের আর্গুমেন্টের জন্য ডিফল্ট মান নির্দিষ্ট করা যায়, তবে সেগুলো ডিফল্টবিহীন সব আর্গুমেন্টের পরে থাকতে হবে, এবং ডিফল্ট মান অ্যাসাইন করতে = ব্যবহার করতে হবে, <- নয়।
বরং অর্থহীন একটি উদাহরণ:
squareit <- function(x = 42) {
x * x
}
squareit()
#> [1] 1764
এক-লাইনের ফাংশন বডির জন্য দ্বিতীয় বন্ধনী { } কঠোরভাবে প্রয়োজন হয় না, তবে এগুলো ব্যবহার করা ভালো স্টাইল হিসেবে ধরা হয়।
R স্বয়ংক্রিয়ভাবে একটি ফাংশনের শেষ মান রিটার্ন করে, উপরের উদাহরণগুলোর মতো।
রিটার্ন ভ্যালু স্পষ্ট করতে ফাংশন বডির যেকোনো জায়গায় return() ব্যবহার করা যায়।
ফাংশন কল করা অন্য অনেক ভাষার মতোই:
squareit(3)
#> [1] 9
এই অনুশীলনীতে আপনি কিছু কোড লিখবেন, যা আপনার প্রিয় রান্নার বই থেকে একটি দারুণ লাসাগন্যা রান্না করতে সাহায্য করবে।
আপনার সামনে চারটি কাজ আছে, যেগুলোর সবই লাসাগন্যা রান্নায় ব্যয় হওয়া সময়ের সাথে সম্পর্কিত।
expected_minutes_in_oven() ফাংশনটি ডিফাইন করুন, যেটি কোনো প্যারামিটার নেয় না এবং রিটার্ন করে লাসাগন্যা কত মিনিট ওভেনে থাকা উচিত। রান্নার বই অনুযায়ী, ওভেনে প্রত্যাশিত সময় মিনিটে ৬০।
> expected_minutes_in_oven()
[1] 60
remaining_time_in_minutes ফাংশনটি ডিফাইন করুন, যেটি লাসাগন্যা ইতিমধ্যে কত মিনিট ওভেনে আছে সেটি প্যারামিটার হিসেবে নেয় এবং আগের কাজের ওভেনে প্রত্যাশিত সময় মিনিটের ভিত্তিতে রিটার্ন করে লাসাগন্যাকে আর কত মিনিট ওভেনে থাকতে হবে।
> remaining_time_in_minutes(50)
[1] 10
prep_time_in_minutes() ফাংশনটি ডিফাইন করুন, যেটি লাসাগন্যায় আপনি কত স্তর যোগ করেছেন সেই সংখ্যাটি প্যারামিটার হিসেবে নেয় এবং রিটার্ন করে লাসাগন্যা প্রস্তুত করতে আপনার কত মিনিট লেগেছে, ধরে নিয়ে যে প্রতিটি স্তর প্রস্তুত করতে আপনার ২ মিনিট লাগে।
> prep_time_in_minutes(2)
[1] 4
elapsed_time_in_minutes ফাংশনটি ডিফাইন করুন, যেটি দুটি আর্গুমেন্ট নেয়: প্রথম আর্গুমেন্টটি হলো লাসাগন্যায় আপনি কত স্তর যোগ করেছেন সেই সংখ্যা, আর দ্বিতীয় প্যারামিটারটি হলো লাসাগন্যা কত মিনিট ওভেনে আছে সেই সংখ্যা। ফাংশনটি রিটার্ন করবে লাসাগন্যা রান্না করতে আপনি মোট কত মিনিট কাজ করেছেন, যা হলো প্রস্তুতির সময় মিনিটে এবং এই মুহূর্তে লাসাগন্যা ওভেনে যত মিনিট কাটিয়েছে তার যোগফল।
> elapsed_time_in_minutes(3, 20)
[1] 26
Exercism-এ সাইন আপ করুন, R ট্র্যাকের 21টি কনসেপ্ট111টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।