From 5e7197b6fa4e131be9359ca625de6331e4fa43cc Mon Sep 17 00:00:00 2001 From: ahamed07sajeeb Date: Fri, 8 May 2020 13:56:07 +0600 Subject: [PATCH 1/7] translate article.md of arrow function basics --- .../16-arrow-functions-basics/article.md | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/1-js/02-first-steps/16-arrow-functions-basics/article.md b/1-js/02-first-steps/16-arrow-functions-basics/article.md index 02090f3c1..560838a9a 100644 --- a/1-js/02-first-steps/16-arrow-functions-basics/article.md +++ b/1-js/02-first-steps/16-arrow-functions-basics/article.md @@ -1,16 +1,17 @@ -# Arrow functions, the basics +# এ্যারো ফাংশনের মূল বিষয়াবলি -There's another very simple and concise syntax for creating functions, that's often better than Function Expressions. +এটা ফাংশন তৈরির আরেকটা খুব সহজ এবং সংক্ষিপ্ত কিন্তু খুবই শক্তিশালী রূপ, প্রায়ই দেখা যায় সাধারণ যে ফাংশন আছে তার থেকে এটা ভাল। -It's called "arrow functions", because it looks like this: + +একে "এ্যারো ফাংশন" বলা হয় কারণ এটা দেখতে অনেকটা এই রকমঃ ```js let func = (arg1, arg2, ...argN) => expression ``` -...This creates a function `func` that accepts arguments `arg1..argN`, then evaluates the `expression` on the right side with their use and returns its result. +এখানে একটা ফাংশন তৈরি করা হয়েছে যার নাম `func` যা `arg1..argN` আর্গুমেন্ট হিসেবে নিচ্ছে, তারপর ডানপাশের `expression` টি সম্পাদন করে তার যে রেজাল্ট হয় সেটা রিটার্ন করছে। -In other words, it's the shorter version of: +অন্যথায় বলতে গেলে, এটা নিম্নোক্ত কোডটির সংক্ষিপ্ত রূপ। ```js let func = function(arg1, arg2, ...argN) { @@ -18,12 +19,12 @@ let func = function(arg1, arg2, ...argN) { }; ``` -Let's see a concrete example: +চলুন, একটা বাস্তবিক উদাহরণ দেখা যাকঃ ```js run let sum = (a, b) => a + b; -/* This arrow function is a shorter form of: +/* এই এ্যারো ফাংশনটা নিচের কোডটির সংক্ষিপ্ত রূপঃ let sum = function(a, b) { return a + b; @@ -33,60 +34,60 @@ let sum = function(a, b) { alert( sum(1, 2) ); // 3 ``` -As you can, see `(a, b) => a + b` means a function that accepts two arguments named `a` and `b`. Upon the execution, it evaluates the expression `a + b` and returns the result. +এখানে আপনি যেমনটি দেখতে পাচ্ছেন, `(a, b) => a + b` ফাংশনটি দুইটা আর্গুমেন্ট নিচ্ছে যথাক্রমে `a` ও `b` এবং সম্পাদনের সময় এটি `a + b` এক্সপ্রেশনটির মান নির্ণয় করছে এবং তার রেজাল্টটি রিটার্ন করছে। -- If we have only one argument, then parentheses around parameters can be omitted, making that even shorter. +- যদি আমাদের কেবল একটি মাত্র আর্গুমেন্ট থাকে তাহলে প্যারামিটারগুলোর দুই পাশে যে প্যারেন্থেসিস বা প্রথম বন্ধনী থাকে সেটি না দিলেও চলে, যেটা কোডটাকে আরও সংক্ষিপ্ত করে নিয়ে আসে। - For example: + উদাহরণ স্বরূপঃ ```js run *!* let double = n => n * 2; - // roughly the same as: let double = function(n) { return n * 2 } + // এটা বলেতে গেলে let double = function(n) { return n * 2 } অন্যরূপ। */!* alert( double(3) ); // 6 ``` -- If there are no arguments, parentheses will be empty (but they should be present): +- যদি ফাংশনের কোন আর্গুমেন্ট না থাকে তাহলে প্যারেন্থেসিস বা প্রথম বন্ধনীদ্বয় খালি থাকবে (কিন্তু তারা উপস্থিত থাকবে) ঃ ```js run - let sayHi = () => alert("Hello!"); + let sayHi = () => alert("হ্যেলো!"); sayHi(); ``` -Arrow functions can be used in the same way as Function Expressions. +এ্যারো ফাংশন, ফাংশন এক্সপ্রেশনের মত একই ভাবে ব্যবহার করা যায়। -For instance, to dynamically create a function: +এই ক্ষেত্রে, ডাইন্যামিকভাবে একটা ফাংশন তৈরি করতে গেলেঃ ```js run -let age = prompt("What is your age?", 18); +let age = prompt("আপনার বয়স কত?", 18); let welcome = (age < 18) ? - () => alert('Hello') : - () => alert("Greetings!"); + () => alert('হ্যালো') : + () => alert("অভিবাদন!"); -welcome(); // ok now +welcome(); // এখন ঠিক আছে ``` -Arrow functions may appear unfamiliar and not very readable at first, but that quickly changes as the eyes get used to the structure. +এ্যারো ফাংশন হয়ত শুরুর দিকে কিছুটা অন্য রকম এবং খুব একটা পাঠযোগ্য নাও লাগতে পারে, কিন্তু এইটা খুব তাড়াতাড়ি বদলে যাবে যেহেতু খুব দ্রুতই আমরা এর গঠনের সাথে অভ্যস্থ হয়ে যাব। -They are very convenient for simple one-line actions, when we're just too lazy to write many words. +এটা এক লাইনের কাজের জন্য খুবই সুবিধাজনক যখন আমরা খুব একটা বেশি লিখতে চাই না। -## Multiline arrow functions +## অনেক লাইনের এ্যারো ফাংশন -The examples above took arguments from the left of `=>` and evaluated the right-side expression with them. +উপড়ের উদাহরণগুলো (`=>`) এই চিহ্নের বাম পাশে আর্গুমেন্ট সমূহ নিয়েছে এবং তাদের সাহায্যে ডান পাশের এক্সপ্রেশনটির মান নির্ধারন করেছে। -Sometimes we need something a little bit more complex, like multiple expressions or statements. It is also possible, but we should enclose them in curly braces. Then use a normal `return` within them. +কিন্তু কখনো সখনো আমাদের এর থেকে কিছুটা বেশি জটিল কাজ করতে হয়, যেমন একের অধিক এক্সপ্রেশন অথবা স্টেটমেন্ট সম্পাদন করা। এটাও সম্ভব, কিন্তু এর জন্য এদের কার্লি ব্র্যাইসেস বা দ্বিতীয় বন্ধনীর ভিতরে লিখতে হবে। তারপর সেখানে একটা সাধারন `return` ব্যবহার করতে হবে। -Like this: +অনেকটা এইরকমঃ ```js run -let sum = (a, b) => { // the curly brace opens a multiline function +let sum = (a, b) => { // এই কার্লি ব্র্যাইসটা শুরু করে একটা বহুলাইন ফাংশনের। let result = a + b; *!* - return result; // if we use curly braces, then we need an explicit "return" + return result; // যদি আমরা কার্লি ব্র্যাইস ব্যবহার করি, তাহলে আমাদের আলাদাকরে একটা "return" ব্যবহার করা লাগবে। */!* }; @@ -94,18 +95,19 @@ alert( sum(1, 2) ); // 3 ``` ```smart header="More to come" -Here we praised arrow functions for brevity. But that's not all! +এখানে আমরা এ্যারো ফাংশনের "সংক্ষিপ্ত রূপের" প্রশংসা করলাম। কিন্তু এইটাই এর সবকিছু নয়! -Arrow functions have other interesting features. +এ্যারো ফাংশনের খুব মজার মজার অন্যান্য ফিচার রয়েছে। -To study them in-depth, we first need to get to know some other aspects of JavaScript, so we'll return to arrow functions later in the chapter . +এদের আরও গভীর ভাবে জানতে হলে প্রথমে আমাদের জাভাস্ক্রিপ্টের কিছু অন্যান্য বিষয়াবলি সম্পর্কে জানতে হবে। সুতরাং পরবর্তিতে আমরা এই চ্যাপ্টারে এ্যারো ফাংশন নিয়ে ফিরে আসব। -For now, we can already use arrow functions for one-line actions and callbacks. +তো এখন পর্যন্ত দেখতে গেলে, আমরা এ্যারো ফাংশন ব্যবহার করে এক লাইনের কোন কাজ এবং কলব্যাক সম্পাদন করতে পারি। ``` ## Summary +## মূলকথা -Arrow functions are handy for one-liners. They come in two flavors: +এ্যারো ফাংশন এক লাইনের কাজের জন্য খুব সুবিধাজনক। এটা দুই প্রকার হতে পারেঃ -1. Without curly braces: `(...args) => expression` -- the right side is an expression: the function evaluates it and returns the result. -2. With curly braces: `(...args) => { body }` -- brackets allow us to write multiple statements inside the function, but we need an explicit `return` to return something. +১. কোন কার্লি ব্র্যাইসেস ছাড়াঃ `(...args) => expression` -- ডান পাশের অংশটা একটা এক্সপ্রেশন এবং ফাংশনটি এই এক্সপ্রেশনের মান নির্ণয় করে এবং সেটা রিটার্ন করে। +২. কার্লি ব্র্যাইসেস সহঃ `(...args) => { body }` -- বন্ধনীসমূহ ফাংশনের ভিতরে একের অধিক স্ট্যাটমেন্ট লিখতে দিচ্ছে, কিন্তু আমাদের কোন কিছু রিটার্ন করার জন্য আলাদা করে `return` ব্যবহার করতে হবে। From 70cec2710c59f40ad1cba816d7ce66d0f22ffaf9 Mon Sep 17 00:00:00 2001 From: Sajeeb Ahamed Date: Fri, 8 May 2020 13:59:29 +0600 Subject: [PATCH 2/7] Remove extra spaces. --- 1-js/02-first-steps/16-arrow-functions-basics/article.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/1-js/02-first-steps/16-arrow-functions-basics/article.md b/1-js/02-first-steps/16-arrow-functions-basics/article.md index 560838a9a..f9629c321 100644 --- a/1-js/02-first-steps/16-arrow-functions-basics/article.md +++ b/1-js/02-first-steps/16-arrow-functions-basics/article.md @@ -24,7 +24,7 @@ let func = function(arg1, arg2, ...argN) { ```js run let sum = (a, b) => a + b; -/* এই এ্যারো ফাংশনটা নিচের কোডটির সংক্ষিপ্ত রূপঃ +/* এই এ্যারো ফাংশনটা নিচের কোডটির সংক্ষিপ্ত রূপঃ let sum = function(a, b) { return a + b; @@ -43,7 +43,7 @@ alert( sum(1, 2) ); // 3 ```js run *!* let double = n => n * 2; - // এটা বলেতে গেলে let double = function(n) { return n * 2 } অন্যরূপ। + // এটা বলেতে গেলে let double = function(n) { return n * 2 } অন্যরূপ। */!* alert( double(3) ); // 6 @@ -95,7 +95,7 @@ alert( sum(1, 2) ); // 3 ``` ```smart header="More to come" -এখানে আমরা এ্যারো ফাংশনের "সংক্ষিপ্ত রূপের" প্রশংসা করলাম। কিন্তু এইটাই এর সবকিছু নয়! +এখানে আমরা এ্যারো ফাংশনের "সংক্ষিপ্ত রূপের" প্রশংসা করলাম। কিন্তু এইটাই এর সবকিছু নয়! এ্যারো ফাংশনের খুব মজার মজার অন্যান্য ফিচার রয়েছে। From 3fde6899788bc183e0d95b53ea98d30d9db0d075 Mon Sep 17 00:00:00 2001 From: Sajeeb Ahamed Date: Fri, 8 May 2020 14:01:08 +0600 Subject: [PATCH 3/7] Update article.md --- 1-js/02-first-steps/16-arrow-functions-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/16-arrow-functions-basics/article.md b/1-js/02-first-steps/16-arrow-functions-basics/article.md index f9629c321..dccc0547d 100644 --- a/1-js/02-first-steps/16-arrow-functions-basics/article.md +++ b/1-js/02-first-steps/16-arrow-functions-basics/article.md @@ -43,7 +43,7 @@ alert( sum(1, 2) ); // 3 ```js run *!* let double = n => n * 2; - // এটা বলেতে গেলে let double = function(n) { return n * 2 } অন্যরূপ। + // এটা বলেতে গেলে let double = function(n) { return n * 2 } অন্যরূপ। */!* alert( double(3) ); // 6 From 54b0340311563e9ac6c52960db0ad94a072d59fa Mon Sep 17 00:00:00 2001 From: ahamed07sajeeb Date: Fri, 8 May 2020 14:09:06 +0600 Subject: [PATCH 4/7] fix list issue --- 1-js/02-first-steps/16-arrow-functions-basics/article.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-js/02-first-steps/16-arrow-functions-basics/article.md b/1-js/02-first-steps/16-arrow-functions-basics/article.md index dccc0547d..a87a7101f 100644 --- a/1-js/02-first-steps/16-arrow-functions-basics/article.md +++ b/1-js/02-first-steps/16-arrow-functions-basics/article.md @@ -109,5 +109,5 @@ alert( sum(1, 2) ); // 3 এ্যারো ফাংশন এক লাইনের কাজের জন্য খুব সুবিধাজনক। এটা দুই প্রকার হতে পারেঃ -১. কোন কার্লি ব্র্যাইসেস ছাড়াঃ `(...args) => expression` -- ডান পাশের অংশটা একটা এক্সপ্রেশন এবং ফাংশনটি এই এক্সপ্রেশনের মান নির্ণয় করে এবং সেটা রিটার্ন করে। -২. কার্লি ব্র্যাইসেস সহঃ `(...args) => { body }` -- বন্ধনীসমূহ ফাংশনের ভিতরে একের অধিক স্ট্যাটমেন্ট লিখতে দিচ্ছে, কিন্তু আমাদের কোন কিছু রিটার্ন করার জন্য আলাদা করে `return` ব্যবহার করতে হবে। +1. কোন কার্লি ব্র্যাইসেস ছাড়াঃ `(...args) => expression` -- ডান পাশের অংশটা একটা এক্সপ্রেশন এবং ফাংশনটি এই এক্সপ্রেশনের মান নির্ণয় করে এবং সেটা রিটার্ন করে। +2. কার্লি ব্র্যাইসেস সহঃ `(...args) => { body }` -- বন্ধনীসমূহ ফাংশনের ভিতরে একের অধিক স্ট্যাটমেন্ট লিখতে দিচ্ছে, কিন্তু আমাদের কোন কিছু রিটার্ন করার জন্য আলাদা করে `return` ব্যবহার করতে হবে। From fc553fbf00d2a0447d314ce3e625c07ac2feaf9f Mon Sep 17 00:00:00 2001 From: ahamed07sajeeb Date: Fri, 8 May 2020 14:19:04 +0600 Subject: [PATCH 5/7] translate task and solution of arrow function basics --- .../1-rewrite-arrow/solution.md | 8 ++++---- .../16-arrow-functions-basics/1-rewrite-arrow/task.md | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/solution.md b/1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/solution.md index 3ea112473..f6bd3fbfe 100644 --- a/1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/solution.md +++ b/1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/solution.md @@ -6,12 +6,12 @@ function ask(question, yes, no) { } ask( - "Do you agree?", + "আপনি কি রাজি?", *!* - () => alert("You agreed."), - () => alert("You canceled the execution.") + () => alert("আপনি রাজি হয়েছেন।"), + () => alert("আপনি কাজটি বাতিল করেছেন।") */!* ); ``` -Looks short and clean, right? +দেখতে ছোট এবং ঝকঝকে লাগছে, তাই না? \ No newline at end of file diff --git a/1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/task.md b/1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/task.md index 2f44db27e..aaf605584 100644 --- a/1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/task.md +++ b/1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/task.md @@ -1,7 +1,7 @@ -# Rewrite with arrow functions +# এ্যারো ফাংশন দিয়ে পুনরায় লিখা -Replace Function Expressions with arrow functions in the code below: +নিচের কোডের ফাংশন এক্সপ্রেশনটি এ্যারো ফাংশন দিয়ে পরিবর্তন করুনঃ ```js run function ask(question, yes, no) { @@ -10,8 +10,8 @@ function ask(question, yes, no) { } ask( - "Do you agree?", - function() { alert("You agreed."); }, - function() { alert("You canceled the execution."); } + "আপনি কি রাজি?", + function() { alert("আপনি রাজি হয়েছেন।"); }, + function() { alert("আপনি কাজটি বাতিল করেছেন।"); } ); ``` From 4dcdf9d97a8a246bc92fad9cf7a6e12a45fbb3d4 Mon Sep 17 00:00:00 2001 From: ahamed07sajeeb Date: Fri, 8 May 2020 15:14:48 +0600 Subject: [PATCH 6/7] update translation and fix spelling mistakes --- .../16-arrow-functions-basics/article.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/1-js/02-first-steps/16-arrow-functions-basics/article.md b/1-js/02-first-steps/16-arrow-functions-basics/article.md index a87a7101f..095cd1ba4 100644 --- a/1-js/02-first-steps/16-arrow-functions-basics/article.md +++ b/1-js/02-first-steps/16-arrow-functions-basics/article.md @@ -1,6 +1,6 @@ # এ্যারো ফাংশনের মূল বিষয়াবলি -এটা ফাংশন তৈরির আরেকটা খুব সহজ এবং সংক্ষিপ্ত কিন্তু খুবই শক্তিশালী রূপ, প্রায়ই দেখা যায় সাধারণ যে ফাংশন আছে তার থেকে এটা ভাল। +এটা ফাংশন তৈরির আরেকটা খুব সহজ এবং সংক্ষিপ্ত কিন্তু খুবই কার্যকরী একটি রূপ, প্রায়ই দেখা যায়, সাধারণ যে ফাংশন আছে তার থেকে এটা ভাল। একে "এ্যারো ফাংশন" বলা হয় কারণ এটা দেখতে অনেকটা এই রকমঃ @@ -9,7 +9,7 @@ let func = (arg1, arg2, ...argN) => expression ``` -এখানে একটা ফাংশন তৈরি করা হয়েছে যার নাম `func` যা `arg1..argN` আর্গুমেন্ট হিসেবে নিচ্ছে, তারপর ডানপাশের `expression` টি সম্পাদন করে তার যে রেজাল্ট হয় সেটা রিটার্ন করছে। +এখানে `func` নামে একটা ফাংশন তৈরি করা হয়েছে যা `arg1..argN` আর্গুমেন্ট হিসেবে নিচ্ছে, তারপর ডানপাশের `expression` টি সম্পাদন করে তার যে রেজাল্ট হয় সেটা রিটার্ন করছে। অন্যথায় বলতে গেলে, এটা নিম্নোক্ত কোডটির সংক্ষিপ্ত রূপ। @@ -49,10 +49,10 @@ alert( sum(1, 2) ); // 3 alert( double(3) ); // 6 ``` -- যদি ফাংশনের কোন আর্গুমেন্ট না থাকে তাহলে প্যারেন্থেসিস বা প্রথম বন্ধনীদ্বয় খালি থাকবে (কিন্তু তারা উপস্থিত থাকবে) ঃ +- যদি ফাংশনের কোন আর্গুমেন্ট না থাকে তাহলে প্যারেন্থেসিস বা প্রথম বন্ধনীদ্বয় খালি থাকবে (কিন্তু তারা উপস্থিত থাকবে) ```js run - let sayHi = () => alert("হ্যেলো!"); + let sayHi = () => alert("হ্যালো!"); sayHi(); ``` @@ -71,15 +71,15 @@ let welcome = (age < 18) ? welcome(); // এখন ঠিক আছে ``` -এ্যারো ফাংশন হয়ত শুরুর দিকে কিছুটা অন্য রকম এবং খুব একটা পাঠযোগ্য নাও লাগতে পারে, কিন্তু এইটা খুব তাড়াতাড়ি বদলে যাবে যেহেতু খুব দ্রুতই আমরা এর গঠনের সাথে অভ্যস্থ হয়ে যাব। +এ্যারো ফাংশন হয়ত শুরুর দিকে কিছুটা অন্য রকম এবং খুব একটা পাঠযোগ্য নাও লাগতে পারে, কিন্তু আমাদের এই মনোভাব খুব তাড়াতাড়ি বদলে যাবে যেহেতু খুব দ্রুতই আমরা এর গঠনের সাথে অভ্যস্থ হয়ে যাব। -এটা এক লাইনের কাজের জন্য খুবই সুবিধাজনক যখন আমরা খুব একটা বেশি লিখতে চাই না। +এটা এক লাইনের কাজের জন্য খুবই সুবিধাজনক যখন আমরা খুব বেশি একটা লিখতে চাই না। ## অনেক লাইনের এ্যারো ফাংশন উপড়ের উদাহরণগুলো (`=>`) এই চিহ্নের বাম পাশে আর্গুমেন্ট সমূহ নিয়েছে এবং তাদের সাহায্যে ডান পাশের এক্সপ্রেশনটির মান নির্ধারন করেছে। -কিন্তু কখনো সখনো আমাদের এর থেকে কিছুটা বেশি জটিল কাজ করতে হয়, যেমন একের অধিক এক্সপ্রেশন অথবা স্টেটমেন্ট সম্পাদন করা। এটাও সম্ভব, কিন্তু এর জন্য এদের কার্লি ব্র্যাইসেস বা দ্বিতীয় বন্ধনীর ভিতরে লিখতে হবে। তারপর সেখানে একটা সাধারন `return` ব্যবহার করতে হবে। +কিন্তু কখনো সখনো আমাদের এর থেকে কিছুটা বেশি জটিল কাজ করতে হয়, যেমন একের অধিক এক্সপ্রেশন অথবা স্টেটমেন্ট সম্পাদন করা। এটাও সম্ভব, কিন্তু তার জন্য এদের কার্লি ব্র্যাইসেস বা দ্বিতীয় বন্ধনীর ভিতরে লিখতে হবে। তারপর সেখানে একটা সাধারন `return` ব্যবহার করতে হবে। অনেকটা এইরকমঃ @@ -97,7 +97,7 @@ alert( sum(1, 2) ); // 3 ```smart header="More to come" এখানে আমরা এ্যারো ফাংশনের "সংক্ষিপ্ত রূপের" প্রশংসা করলাম। কিন্তু এইটাই এর সবকিছু নয়! -এ্যারো ফাংশনের খুব মজার মজার অন্যান্য ফিচার রয়েছে। +এ্যারো ফাংশনের আরও খুব মজার মজার অন্যান্য ফিচার রয়েছে। এদের আরও গভীর ভাবে জানতে হলে প্রথমে আমাদের জাভাস্ক্রিপ্টের কিছু অন্যান্য বিষয়াবলি সম্পর্কে জানতে হবে। সুতরাং পরবর্তিতে আমরা এই চ্যাপ্টারে এ্যারো ফাংশন নিয়ে ফিরে আসব। From 4ea71273fb8265e6339a75ed65a2c187547495b0 Mon Sep 17 00:00:00 2001 From: Sajeeb Ahamed Date: Sun, 10 May 2020 15:58:19 +0600 Subject: [PATCH 7/7] Resolve the review queries. --- .../16-arrow-functions-basics/article.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/1-js/02-first-steps/16-arrow-functions-basics/article.md b/1-js/02-first-steps/16-arrow-functions-basics/article.md index 095cd1ba4..15f5402ec 100644 --- a/1-js/02-first-steps/16-arrow-functions-basics/article.md +++ b/1-js/02-first-steps/16-arrow-functions-basics/article.md @@ -43,7 +43,7 @@ alert( sum(1, 2) ); // 3 ```js run *!* let double = n => n * 2; - // এটা বলেতে গেলে let double = function(n) { return n * 2 } অন্যরূপ। + // এটা বলেতে গেলে let double = function(n) { return n * 2 } এর একটি অন্যরূপ। */!* alert( double(3) ); // 6 @@ -77,17 +77,17 @@ welcome(); // এখন ঠিক আছে ## অনেক লাইনের এ্যারো ফাংশন -উপড়ের উদাহরণগুলো (`=>`) এই চিহ্নের বাম পাশে আর্গুমেন্ট সমূহ নিয়েছে এবং তাদের সাহায্যে ডান পাশের এক্সপ্রেশনটির মান নির্ধারন করেছে। +উপড়ের উদাহরণগুলোতে (`=>`) এই চিহ্নের বাম পাশে আর্গুমেন্ট সমূহ নিয়েছে এবং তাদের সাহায্যে ডান পাশের এক্সপ্রেশনটির মান নির্ধারন করেছে। -কিন্তু কখনো সখনো আমাদের এর থেকে কিছুটা বেশি জটিল কাজ করতে হয়, যেমন একের অধিক এক্সপ্রেশন অথবা স্টেটমেন্ট সম্পাদন করা। এটাও সম্ভব, কিন্তু তার জন্য এদের কার্লি ব্র্যাইসেস বা দ্বিতীয় বন্ধনীর ভিতরে লিখতে হবে। তারপর সেখানে একটা সাধারন `return` ব্যবহার করতে হবে। +কিন্তু কখনো সখনো আমাদের এর থেকে কিছুটা বেশি জটিল কাজ করতে হয়, যেমন একের অধিক এক্সপ্রেশন অথবা স্টেটমেন্ট সম্পাদন করা। এটাও সম্ভব, কিন্তু তার জন্য তাদের কার্লি ব্র্যাসেস বা দ্বিতীয় বন্ধনীর ভিতরে লিখতে হবে। তারপর সেখানে একটা সাধারন `return` ব্যবহার করতে হবে। অনেকটা এইরকমঃ ```js run -let sum = (a, b) => { // এই কার্লি ব্র্যাইসটা শুরু করে একটা বহুলাইন ফাংশনের। +let sum = (a, b) => { // এই কার্লি ব্র্যাসটা শুরু করে একটা বহুলাইন ফাংশনের। let result = a + b; *!* - return result; // যদি আমরা কার্লি ব্র্যাইস ব্যবহার করি, তাহলে আমাদের আলাদাকরে একটা "return" ব্যবহার করা লাগবে। + return result; // যদি আমরা কার্লি ব্র্যাসেস ব্যবহার করি, তাহলে আমাদের আলাদাকরে একটা "return" ব্যবহার করা লাগবে। */!* }; @@ -109,5 +109,5 @@ alert( sum(1, 2) ); // 3 এ্যারো ফাংশন এক লাইনের কাজের জন্য খুব সুবিধাজনক। এটা দুই প্রকার হতে পারেঃ -1. কোন কার্লি ব্র্যাইসেস ছাড়াঃ `(...args) => expression` -- ডান পাশের অংশটা একটা এক্সপ্রেশন এবং ফাংশনটি এই এক্সপ্রেশনের মান নির্ণয় করে এবং সেটা রিটার্ন করে। -2. কার্লি ব্র্যাইসেস সহঃ `(...args) => { body }` -- বন্ধনীসমূহ ফাংশনের ভিতরে একের অধিক স্ট্যাটমেন্ট লিখতে দিচ্ছে, কিন্তু আমাদের কোন কিছু রিটার্ন করার জন্য আলাদা করে `return` ব্যবহার করতে হবে। +1. কোন কার্লি ব্র্যাসেস ছাড়াঃ `(...args) => expression` -- ডান পাশের অংশটা একটা এক্সপ্রেশন এবং ফাংশনটি এই এক্সপ্রেশনের মান নির্ণয় করে এবং সেটা রিটার্ন করে। +2. কার্লি ব্র্যাসেস সহঃ `(...args) => { body }` -- বন্ধনীসমূহ ফাংশনের ভিতরে একের অধিক স্ট্যাটমেন্ট লিখতে দিচ্ছে, কিন্তু আমাদের কোন কিছু রিটার্ন করার জন্য আলাদা করে `return` ব্যবহার করতে হবে।