Generally, data structures are used to represent.

일반적으로, 데이터 구조는 표현을 위해 사용된다.

An array could represent a geometric transformation; a tree could represent a hierarchy of command; a graph could represent a rail network.

배열은 기하학적 변환을 나타낼 수 있고, 트리는 명령의 계층을 나타낼 수 있으며, 그래프는 철도 네트워크를 나타낼 수 있다.

In Lisp we can sometimes use closures as a representation

Lisp 에서 우리는 때때로 closure로 표현할 수 있다.

Within a closure, variable bindings can store information, and can also play the role that pointers play in constructing complex data structures.

클로저 안에서, 변수바인딩은 정보를 저장할 수 있고, 또한 포인터의 역할을 이용해서 복잡한 자료 구조를 만들어낼 수 있다.

By making a group of closures which share bindings, or can refer to one another, we can create hybrid objects which combine the advantages of data structures and programs

closure 그룹을 만들어서 바인딩을 공유하거나, 서로를 참조하거나, 데이터 구조와 프로그램의 장점을 결합한 하이브리드 객체를 만들 수도 있다.

Beneath the surface, shared bindings are pointers.

표면 아래에는, 공유된 바인딩은 포인터다.

Closures just bring us the convenience of dealing with them at a higher level of abstraction

closure는 더 높은 수준의 추상화이기에 다루는데 더 편하다.

By using closures to represent something we would otherwise represent with static data structures, we can often expect substantial improvements in elegance and efficiency.

정적 자료구조로 표현할 것을 closure로 표현한다면, 우리는 우아함과 효율적인 면에서 실질적인 향상을 기대할 수 있다.

6.1 Networks

여기서 네트워크는 IO 소켓통신이 아니라 연결을 말한다.