| 이전 주제 보기 :: 다음 주제 보기 | 
	
	
		| 글쓴이 | 메시지 | 
	
		| 임성철 
 
 
 가입: 2012년 9월 8일
 올린 글: 35
 
 
 | 
			
				|  올려짐: 2012년10월28일 0:11    주제: [실습 5] 물건 중심으로 구현할 때, step 함수를 짤 때 map 함수를 쓰니까 값이 변하네요.. |   |  
				| 
 |  
				|  	  | 코드: |  	  | 
 (define w1 (make-wire "w1"))
 (define w2 (make-wire "w2"))
 (define w3 (make-wire "w3"))
 (define and1 (and-gate w1 w2 w3))
 (define not1 (not-gate w3 w1))
 (define switch1 (switch w2))
 (define circuit1 (add-gate-to-circuit "and1" and1 empty-circuit))
 (define circuit2 (add-gate-to-circuit "not1" not1 circuit1))
 (define circuit3 (add-gate-to-circuit "switch1" switch1 circuit2))
 
 (define circuit-state
 (set-wire-volts
 (list (cons "w1" one) (cons "w2" one) (cons "w3" one))
 circuit3))
 (step circuit-state)
 
 
 | 
 
 
 이런 경우
 
 map 함수를 써서 물건 중심으로 구현하면
 
 (("switch1" switch (wire "w2" 1)) ("not1" not (wire "w3" 1) (wire "w1" 1)) ("and1" and (wire "w1" 1) (wire "w2" 1) (wire "w3" 1)))
 
 중 not1 게이트에서 w3이 1이므로 w1은 0이 됩니다.
 
 그리고 다음, and1 게이트를 호출할 텐데,
 이때 w1의 값이 0이 되어있네요..
 그래서 원치 않게 w3은 0이 되어버립니다.
 
 이를 방지하기 위해선 같은 circuit을 하나 더 복사하는 방법을 쓰면 될 것 같은데요,
 (not에서 w1이 0이 될 때 and에서의 w1은 다른 circuit에서 읽어올 수 있도록)
 
 물건 중심 구현에서 circuit을 복사하는 게 가능할까요?
 |  | 
	
		| 위로 |  | 
	
		|  | 
	
		| 최민아 
 
 
 가입: 2009년 9월 28일
 올린 글: 236
 
 
 | 
			
				|  올려짐: 2012년10월28일 2:55    주제: |   |  
				| 
 |  
				| 다양한 구현 방법이 있을 수 있지만 
 회로 안에 wire를 2개씩 가지고 다니는 것도 한 방법입니다.
 |  | 
	
		| 위로 |  | 
	
		|  | 
	
		| 임성철 
 
 
 가입: 2012년 9월 8일
 올린 글: 35
 
 
 | 
			
				|  올려짐: 2012년10월28일 16:14    주제: |   |  
				| 
 |  
				| 답변 감사합니다~ |  | 
	
		| 위로 |  | 
	
		|  | 
	
		|  |