مولد (برنامه‌نویسی)

از ویکی‌پدیا، دانشنامهٔ آزاد

نسخه‌ای که می‌بینید نسخه‌ای قدیمی از صفحه است که توسط Rezagfhsafhns (بحث | مشارکت‌ها) در تاریخ ‏۹ اوت ۲۰۲۰، ساعت ۱۳:۳۳ ویرایش شده است. این نسخه ممکن است تفاوت‌های عمده‌ای با نسخهٔ فعلی داشته باشد.

در علوم رایانه، یک مولد (به انگلیسی: Generator) یک رویه خاص است که می‌تواند برای کنترل کردن رفتار تکرار یک حلقه مورد استفاده قرار گیرد. بسیار شبیه به تابعی است که یک آرایه‌ای را بازمی‌گرداند. یک مولد دارای یک سری پارامترهاست، می‌تواند فراخوانی شود و دنباله ای از مقادیر را تولید کند. با این حال، به جای ساخت یک آرایه که شامل همه مقادیر باشد و همه آن‌ها را به یکباره برگرداند، یک مولد در هر بار تنها یک مقدار باز می‌گرداند که با اینکار باعث صرفه‌جویی در مصرف حافظه می‌شود و به رویه فراخوان اجازه می‌دهد تا اولین مقادیر را بلافاصله دریافت و پردازش کند.به‌طور خلاصه، یک مولد شبیه یک تابع به نظر می‌رسد اما مانند یک تکرارکننده عمل می‌کند.

مولدها معمولاً در داخل حلقه‌ها به کار برده می‌شوند.

مثال ها

پایتون

این یک مثال برای پایتون است:[۱]

def countfrom(n):
    while True:
        yield n
        n += 1
# خروجی:چاپ اعداد ۱۰ تا ۲۰
# Note that this iteration terminates normally, despite 
# countfrom() being written as an infinite loop.

for i in countfrom(10):
    if i <= 20:
        print(i)
    else:
        break
# Another generator, which produces prime numbers indefinitely as needed.

def primes():
    yield 2
    n = 3
    p = []
    while True:
        #This works in Python 2.5+ 
        if not any( n % f == 0 for f in 
                     itertools.takewhile(lambda f: f*f <= n, p) ): 
            yield n
            p.append( n )
        n += 2

منابع

  1. ویکی‌پدیای انگلیسی