跳轉到正文

程式設計的科學/SwayPresentations/物件/EnvironmentsAsObjects

來自華夏公益教科書,面向開放世界的開放書籍

環境作為物件

如果您將現有“物件”用作“物件”,那麼環境會是更好的選擇。

在 Scheme 中,環境是一等“物件”。

  (define (account amount)
      (define (deposit d) (set! amount (+ amount d)))
      (define (withdraw w) (set! amount (- amount w)))
      (procedure-environment (lambda () 1))
      )

我們需要“點”運算子

   (define (dot obj message)
       (eval message obj)
       )

現在,我們的帳戶看起來像

   (define a (account 100))
   ((dot a 'withdraw) 10)
   ((dot a 'deposit) 20)

下一頁 上一頁 頂部

華夏公益教科書