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

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

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