Lambda Function در زبانهای مدرن چیست
خلاصه
1404/05/29
Lambda Function در زبانهای برنامهنویسی مدرن، یک تابع anonymous یا بینام است. به عبارت دیگر، تابعی است که بدون نیاز به نامگذاری تعریف میشود. این توابع معمولاً کوچک و یکخطی

Lambda Function در زبانهای برنامهنویسی مدرن، یک تابع anonymous یا بینام است. به عبارت دیگر، تابعی است که بدون نیاز به نامگذاری تعریف میشود. این توابع معمولاً کوچک و یکخطی هستند و برای انجام وظایف ساده و سریع مورد استفاده قرار میگیرند.
**ویژگیهای کلیدی Lambda Functions:**
* **Anonymous (بینام):** هیچ نامی به تابع اختصاص داده نمیشود.
* **Concise (خلاص):** معمولاً در یک خط کد تعریف میشوند.
* **Limited Scope (محدوده محدود):** برای وظایف کوچک و ساده طراحی شدهاند.
* **First-Class Citizens:** مانند سایر متغیرها و مقادیر، میتوانند به عنوان آرگومان به توابع دیگر ارسال شوند و یا به عنوان مقدار برگشتی از یک تابع برگردانده شوند.
* **Closure (بستار):** میتوانند به متغیرهای موجود در محدوده اطراف خود دسترسی داشته باشند (در برخی زبانها).
**کاربردهای Lambda Functions:**
* **Callback Functions:** برای ارسال یک تابع به عنوان آرگومان به یک تابع دیگر که آن را در زمان معینی فراخوانی میکند.
* **Simple Operations:** انجام عملیاتهای ساده مانند فیلتر کردن، مرتبسازی و تبدیل دادهها.
* **Readability:** در برخی موارد، استفاده از Lambda Functions میتواند کد را خواناتر و مختصرتر کند.
**مثالها در زبانهای مختلف:**
* **Python:**
```python
# تابع lambda برای محاسبه مربع یک عدد
square = lambda x: x * x
print(square(5)) # خروجی: 25
# استفاده در توابع higher-order مانند map
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x * x, numbers))
print(squared_numbers) # خروجی: [1, 4, 9, 16, 25]
```
* **JavaScript:**
```javascript
// تابع lambda برای جمع دو عدد
const add = (x, y) => x + y;
console.log(add(3, 4)); // خروجی: 7
// استفاده در توابع آرایه مانند filter
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(x => x % 2 === 0);
console.log(evenNumbers); // خروجی: [2, 4]
```
* **Java (از نسخه 8 به بعد):**
```java
// تابع lambda برای ضرب دو عدد
interface MathOperation {
int operate(int a, int b);
}
public class Main {
public static void main(String[] args) {
MathOperation multiply = (a, b) -> a * b;
System.out.println(multiply.operate(3, 4)); // خروجی: 12
}
}
```
* **C#:**
```csharp
using System;
using System.Linq;
public class Example
{
public static void Main(string[] args)
{
// تابع lambda برای بررسی زوج بودن یک عدد
Func
Console.WriteLine(isEven(4)); // خروجی: True
// استفاده در LINQ برای فیلتر کردن
int[] numbers = {1, 2, 3, 4, 5};
var even
برخی از محصولات شرکت مهندسی آبان رایان البرز
سایر مقالات آموزشی شرکت نرم افزاری آبان رایان البرز :
- نقش برنامهنویسی تابعی در طراحی نرمافزار چیست
- چه تفاوتی بین تابع بازگشتی و تابع معمولی وجود دارد
- چگونه میتوان از الگوی Singleton در برنامهها استفاده کرد
- پلیمورفیسم چیست و چه کاربردی دارد
- مفهوم وراثت در OOP چیست
- کلاس و شی در برنامهنویسی شیءگرا چه مفهومی دارند
- چه تفاوتی بین متغیرهای محلی و سراسری وجود دارد
- مفهوم JSON و کاربرد آن در انتقال داده چیست
- تفاوت بین REST و SOAP در طراحی API چیست
- Nodejs چگونه کار میکند
- تفاوت بین Java و Kotlin در توسعه اپ موبایل چیست
- جاوا اسکریپت چه نقشی در توسعه وب دارد
- زبان Python در چه حوزههایی کاربرد دارد
- تفاوت زبان برنامهنویسی C و C چیست
- Continuous Integration چه مزایایی دارد
- نقش واحد تست Unit Test در توسعه نرمافزار چیست