توابع بی نام و بستارها (closures) مفاهیم مفیدی هستند که در بیشتر زبانهای برنامه نویسی مدرن استفاده می شوند. مثل بسیاری دیگر از اجزای زبانهای برنامه نویسی مدرن بستارها ریشه در زبان برنامه نویسی لیسپ دارند.
توابع بی نام بصورت گسترده در جاوااسکریپت و بصورت ویژه در callback های موجود در بسیاری از فریمورکهای این زبان استفاده می شوند. در زبان روبی آنها را در فرمت بلوک می بینیم.
ابتدا نگاهی به توابع بی نام می اندازیم. یک تابع بی نام به برنامه نویس اجازه می دهد تا تابعی ایجاد نماید که نام ندارد. به عبارت دیگر یک تابع بی نام برای نگه داشتن جزئی از عملکرد در یک متغیر و پاس دادن آن به عملکرد حول خودش استفاده می شود. با هم به مثالی از توابع بی نام در روبی و جاوااسکریپت نگاهی می اندازیم: