آموزش لامبدا (Lambda)
آنچه در این صفحه می خوانید:
معرفی لامبدا (Lambda)
در برنامه نویسی رایانه، عبارات لامبدا یا تابع ناشناس (Anonymous function) تعریف تابعی است که به یک شناسه محدود نمی شود. توابع لامبدا اغلب آرگومان هایی هستند که به توابع مرتبه بالاتر منتقل می شوند یا برای ساخت نتیجه تابعی با مرتبه بالاتر استفاده می شوند که نیاز به بازگشت یک تابع دارد. اگر این تابع فقط یک بار یا به صورت محدود استفاده شود، ممکن است یک تابع لامبدا از نظر استفاده از یک تابع نامگذاری شده سبک تر باشد. توابع لامبدا در زبان های برنامه نویسی کاربردی و سایر زبان هایی که دارای توابع first-class هستند و تقریبا در همه جا مورد استفاده قرار می گیرد، جایی که آنها همان وظیفه را برای نوع تابعی انجام می دهند، همانطور که ادبیات برای سایر داده ها انجام می دهند.
توابع لامبدا توسط Alonzo Church، در سال 1936، قبل از پیدایش رایانه های الکترونیکی ایجاد شد. در چندین زبان برنامه نویسی، توابع لامبدا با استفاده از کلمه کلیدی lambda معرفی می شوند. توابع لامبدا از زمان Lisp در سال 1958 از ویژگی های زبان های برنامه نویسی بوده و تعداد زیادی از زبان های برنامه نویسی مدرن از توابع لامبدا پشتیبانی می کنند.
کاربرد لامبدا (Lambda)
از توابع لامبدا می توان برای توابعی استفاده کرد که نیازی به نامگذاری نداشته باشند و احتمالاً برای کوتاه مدت استفاده می شوند. برخی از نمونه های قابل توجه شامل closures و currying است. استفاده از توابع لامبدا موضوعی از استایل است. استفاده از آنها هرگز تنها راه حل مسئله نیست. در عوض، هر تابع لامبدا می تواند به عنوان یک تابع نامگذاری شده و با همان نام خوانده شود. برخی از برنامه نویسان از توابع لامبدا برای کپسوله کردن کد خاص و non-reusable استفاده می کنند.
در برخی از زبان های برنامه نویسی، تابع های لامبدا معمولاً برای مقاصد بسیار خاص مانند binding events برای فراخوانی های برگشتی یا فوری کردن تابع برای مقادیر خاص انجام می شوند، که ممکن است کارآمدتر، خواندنی تر و خطای کمتری نسبت به فراخوانی یک تابع با نام عمومی داشته باشد.
مثال لامبدا (Lambda)
زبان های بی شماری از توابع لامبدا پشتیبانی می کنند. مثال زیر در پایتون (Python) نوشته شده است.
پایتون از طریق lambda form از توابع ساده لامبدا پشتیبانی می کند. اینکه بدنه اجرایی لامبدا باید یک عبارت (expression) باشد و نمی تواند یک بیانیه (statement) باشد، محدودیتی است که باعث می شود ابزار آن محدود شود. مقدار برگشتی توسط لامبدا، مقدار عبارت موجود است. فرم های لامبدا می توانند در هر مکانی که تابع های معمولی داشته باشند استفاده شوند. با این حال، این محدودیت ها آن را به یک نسخه بسیار محدود از یک تابع طبیعی تبدیل می کنند. به عنوان مثال:
>>> foo = lambda x: x * x
>>> print(foo(10))
100
به طور کلی، قرارداد پایتون استفاده از توابع نامگذاری شده را در همان محدوده تشویق می کند که ممکن است شخصاً از توابع لامبدا در سایر زبان ها استفاده کند. این قابل قبول است زیرا توابع تعریف شده لوکال قدرت کامل بسته شدن را به کار می گیرند و تقریباً به همان اندازه کاربرد لامبدا در پایتون کارآمد هستند. در این مثال می توان گفت که تابع توان داخلی ساخته شده است:
>>> def make_pow(n):
... def fixed_exponent_pow(x):
... return pow(x, n)
... return fixed_exponent_pow
...
>>> sqr = make_pow(2)
>>> print (sqr(10))
100
>>> cub = make_pow(3)
>>> print (cub(10))
1000
راه اندازی توابع Lambda از دستگاه های ساده با AWS IoT 1-Click
شما در این دوره، یاد خواهید گرفت که چگونه توابع Lambda را بر روی AWS از دستگاه های AWS IoT 1-Click ساده راه اندازی کنید. ابتدا مهارت های استفاده از SD...
دوره AWS Developer: آشنایی با AWS Lambda
در این دوره، شما نحوه ایجاد کد رویداد محور در AWS Lambda را فرا خواهید گرفت. در ابتدا، نحوه استفاده از توابع زمان بندی شده ساده، و نحوه ادغام ایمن Lam...
پیاده سازی الگوهای طراحی با Java 8 Lambda
در این دوره، شما نحوه بکارگیری ابزارهای اضافه شده به پلتفرم Java 8 برای کدنویسی بهتر را یاد خواهید گرفت. در ابتدا، به کمک Comparator API نحوه استفاده ...
بکارگیری تکنیک های برنامه نویسی تابعی در جاوا
در این دوره، شما نحوه برنامه نویسی به سبک تابعی با جاوا فراتر از بکارگیری لامبدا و جریان ها را یاد خواهید گرفت. در ابتدا، دلیل اهمیت برنامه نویسی تابع...
ساخت و استقرار توابع لامبدا: AWS با پایتون و Boto3
AWS Lambda یکی از سریعترین سرویس های در حال رشد AWS است! این دوره بخشی از سری دوره های راه حل های AWS با پایتون و Boto3 است و اکنون باید توابع بدون سر...
آموزش Amazon Web Services Lambda
در این دوره، Marcia Villalba به مبتدیان کمک می کند تا با Lambda شروع به کار کنند. او برای شروع، مبانی ایمن سازی یک حساب AWS و ایجاد کاربران IAM را توض...
آموزش AWS برای توسعه دهندگان: پردازش پرداخت PayPal با Lambdas
این دوره شامل مراحل ساده در اجرای پردازش پرداخت PayPal با استفاده از Lambdas است. Bear Cahill، راه اندازی منابع، اعمال نفوذ یک اسکریپت محلی Ruby با Br...
آموزش AWS برای توسعه دهندگان: پایگاه داده RDS MySQL با Lambdas
در این دوره، بیاموزید که چگونه از RDS MySQL Database، یک پایگاه داده رابطه ای که از یک برنامه از طریق Lambdas قابل دسترسی است، استفاده کنید. Bear Cahi...
آموزش عملی AWS Lambda و چارچوب بدون سرور (Serverless)
این دوره مفاهیم اصلی AWS Lambda، YAML، چارچوبهای بدون سرور و کلیه موارد مورد نیازی برای توسعه و پیاده سازی توابع Lambda در یک چارچوب بدون سرور را خوا...
آموزش معماری Serverless با AWS Lambda
معماری Serverless راهی برای ساخت و اجرا برنامه ها و خدمات بدون نیاز به مدیریت زیرساخت است. Lambda مشکل برخورد با سرورهای مبتنی بر ابر را در تمام سطوح ...
آموزش AWS Lambda - توسعه اپلیکیشن های Serverless با Java
Serverless یک روش جدید رایانش ابری (cloud computing) برای ساخت و معماری اپلیکیشن ها است. این دوره با معرفی Serverless و Lambda، مبانی Serverless و مق...
آموزش عبارات لامبدا در جاوا
در این آموزش تصویری با عبارات لامبدا (Lambda Expressions) در جاوا آشنا می شوید. این دوره آموزشی محصول موسسه Lynda است. سرفصل های این دوره: ایجاد ...
پیاده سازی معماری Lambda با Spark Kafka و Cassandra
در این آموزش تصویری با پیاده سازی معماری Lambda با Spark Kafka و Cassandra آشنا می شوید. این دوره آموزشی محصول Pluralsight است. سرفصل های این مجموعه...
آشنایی با Lambdas وStreams در Java 8
در این دوره آموزشی Madhusudhan Konda به شما نحوه توسعه اپلیکیشن های جاوا را با استفاده از Java 8 یاد میدهد. این دوره برای کاربرانی طراحی شده است که تج...
کار با Collections و Streams در Java 8 با استفاده از Lambda Expressions
در این آموزش تصویری با کار با Collections و Streams در Java 8 با استفاده از Lambda Expressions آشنا می شوید. این دوره آموزشی محصول موسسه Pluralsight ا...
آموزش Event ، Delegate وLambda در سی شارپ
این دوره آموزشی به شما می آموزد که چگونه رویدادها، Delegates و lambdas در زبان #C و NET framework. کار می کنند. این مجموعه آموزشی (C# Events, Delega...