| Introduction to Functional Programming in Scheme - slide 47 : 49 | 
We will illustrate the idea of referential transparency in the context of practical Scheme Programming
(let ((a (list 1 2))
      (b (list 1 2))
      (c (list 3 4)))
  (append a b c))            <==>
(let ((a (list 1 2))
      (c (list 3 4)))
  (append a a c))            <==>
(let ((a (list 1 2)))
  (append a a (list 3 4)))   <==>
(let ((a (list (- 3 2) 2))
      (b (list 1 (+ 1 1))))
  (append a b (list 3 4)))   <==>
(list 1 2 1 2 3 4) A copy of some data can be used as a substitute for the original data
A value of an expression can be used as a substitute for the expression itself
A 'more complicated expression' can be used as a substitute for 'the original expression'

![Previous page: Referential Transparency [Section] -- Keyboard shortcut: 'p' Previous page: Referential Transparency [Section] -- Keyboard shortcut: 'p'](./images/nav-left.gif)





