關閉靜態環境
閉包是一個保持內部狀態的過程:
定義一個返回閉包的過程
程式 make-an-adder
接受一個引數 x
並返回一個關閉該值的函式。換句話說,x
在返回函式的詞法範圍內。
#lang racket
(define (make-an-adder x)
(lambda (y)
(+ y x)))
用法
呼叫過程 make-an-adder
會返回一個閉包過程。
Welcome to DrRacket, version 6.6 [3m].
Language: racket, with debugging; memory limit: 128 MB.
> (define 3adder (make-an-adder 3))
> (3adder 4)
7
> (define 8adder (make-an-adder 8))
> (8adder 4)
12