User Tools

Site Tools


study:anaphoric_macros

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
study:anaphoric_macros [2014/06/21 23:24]
psk810 [Indirection Chain의 동적 추가]
study:anaphoric_macros [2014/06/21 23:33]
psk810 [Indirection Chain의 동적 추가]
Line 761: Line 761:
  
    alet 더미 클로져 ==> this ==> alet의 실제 클로져 ​      alet 더미 클로져 ==> this ==> alet의 실제 클로져 ​  
-   +
 alet의 실제 클로져는 새로운 let 문구를 만들고 this가 가리키던 alet의 실제 클로져는 #:​INDIR-ENV1143가 참조하도록 바꾸고, this는 ichain-before 매크로의 더미 클로져를 참조하도록 바꾼다. 다음과 같다. alet의 실제 클로져는 새로운 let 문구를 만들고 this가 가리키던 alet의 실제 클로져는 #:​INDIR-ENV1143가 참조하도록 바꾸고, this는 ichain-before 매크로의 더미 클로져를 참조하도록 바꾼다. 다음과 같다.
  
Line 775: Line 775:
    alet 더미 클로져 ==> this ==> ichain-before의 더미 클로져 ==> #:​INDIR-ENV1143 ==> alet의 실제 클로져    alet 더미 클로져 ==> this ==> ichain-before의 더미 클로져 ==> #:​INDIR-ENV1143 ==> alet의 실제 클로져
  
- +이제 이 상태에서 alet 더미 클로져가 수행되면 ichain-bebure의 더미 클로져가 수행되면서 "Hello world"​를 찍고 #:​INDIR-ENV1143 를 통해 alet의 실제 클로져가 다시 한 번 간접 참조를 추가하게 된다. 
 + 
 + ** alet의 더미 클로져가 최초 실행 결과 ** 
 + 
 +   ​this ​           ==> ichain-before의 더미 클로져 
 +   ​신규 let의 #:​INDIR-ENV1143 ==> 이전 let의 ichain-before의 더미 클로져 
 +   ​이전 let의 #:​INDIR-ENV1143 ==> alet의 실제 클로져 
 + 
 +다시 alet의 더미 클로져가 여기서 다시 실행될 때의 간접 참조 사슬은 다음과 같이 된다. 
 + 
 +   alet 더미 클로져 ==> this ==> 신규 ichain-before의 더미 클로져 ==> 신규 #:​INDIR-ENV1143 ==> 이전 alet의 실제 클로져 ==> 이전 let의 #:​INDIR-ENV1143 ==> alet의 실제 클로져 
 +    
 +이번에는 ichain-before 더미 클로져가 사슬상에 2번 걸려 있기 때문에 "Hello world"​가 2번 찍히게 된다. 이런식으로 alet 더미 클로져가 수행될 때 마다 ichain-before 더미 클로져가 사슬상에 추가되는 것이다.
study/anaphoric_macros.txt · Last modified: 2019/02/04 14:26 (external edit)