"No spoon."
What if I told you that there are no strings like strings? There is only a list of single characters.
Then what if I told you that there is no such thing as a list? There are only couples.
; construct a pair of a and b
(cons 'a 'b) ; => ('a 'b)
; get the first element of the pair
(first (cons 'a 'b)) ; => 'a
; get the second element of the pair
(second (cons 'a 'b)) ; => 'b
; create a "list"
(define x (cons 'a (cons 'b (cons 'c (cons 'd (cons 'e null))))))
; => ('a ('b ('c ('d ('e ())))))
; get the third element in the "list", x
(first (second (second x)))
; => 'c
Now, what if I told you that such pairs do not exist? There is only lambda.
(define (cons x y)
(λ (f) (f x y)))
(define (first p)
(p (λ (x y) x)))
(define (second p)
(p (λ (x y) y)))
Of course, this is just one possible implementation. But it is important to understand that all this is just an illusion.
. , , /, . , .
, , , . . , , - ^, ^