Sulund (informaatika)
Allikas: Vikipeedia
Sulund on informaatikas avaldis (harilikult funktsioon), millel võib olla vabu muutujaid koos keskkonnaga, mis neid seob ("sulgub" ümber nende muutujate).[1]
Mõnikord nimetatakse sulunditeks ka lihtsalt anonüümseid funktsioone.[2]
Sulundeid kasutades saab objektorienteeritud programmeerimiseks implementeerida objekte ja klasse.[3]
Näited [muuda]
Näiteks defineerime programmeerimiskeeles Scheme kõrgemat järku funktsiooni make-counter, mis tagastab loenduri: funktsiooni, mis suurendab igal väljakutsel tema loomise kontekstis nähtavat muutujat count ühe võrra ja tagastab saadud väärtuse:
(define make-counter ()
(let ((count 0))
(lambda ()
(set! cnt (+ count 1)))))
Seejärel loome make-counter abil kaks loendurit:
(define counter-a (make-counter)) (define counter-b (make-counter))
Võime hakata kumbagi funktsiooni välja kutsuma ja näeme, et kummagi loendur suureneb omaette:
(counter-a) ;; --> 1 (counter-a) ;; --> 2 (counter-a) ;; --> 3 (counter-b) ;; --> 1 (counter-b) ;; --> 2 (counter-b) ;; --> 3 (counter-a) ;; --> 4 (counter-a) ;; --> 5 (counter-a) ;; --> 6 (counter-b) ;; --> 4
Viited [muuda]
- ↑ Richard Cornford. Javascript Closures. Notes on the comp.lang.javascript FAQ,
- ↑ Anonymous functions. PHP Manual,
- ↑ Kurt Nørmark. Classes and objects in Scheme. Functional Programming in Scheme,