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

در علوم رایانه، یک مولد (به انگلیسی: 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. ویکی‌پدیای انگلیسی