이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
JinIKyun
가입: 2008년 10월 4일 올린 글: 7
|
올려짐: 2008년10월16일 12:31 주제: [hw4] (id * cond)와 (id cond)의 차이? |
|
|
scheme에서 (id * cond)와 그냥 리스트로 (id cond)라고 하는것에 차이가 있나요?
쇼핑 리스트의 결과물인
((A . (1 2)) (B . (2)) (C . (1 2)))
를 보면 (id * gift list)가 (A . (1 2))와 같이 표현되어 있어서 차이가 있는 것 같기도 한데요.
만일 (A * B)를 scheme에서 (A . B)로 만들어야 하는 거라면
cons를 할 때 양쪽 모두 리스트가 아닌 원소를 넣게 되면 (A . B)와 같이 되는데요.
만일 한 쪽이 리스트인 경우에는 (A . (1 2))와 같은 것을 만들 수 있는 방법이 없네요.
그냥 (A 1 2)가 되어 버리는데...
순서를 바꿔서 (cons '(1 2) 'A)와 같이 하면 ((1 2) . A)같이 하는게 가능하더군요.
1. 그렇다면 순서를 바꿔서 (gift list * id)나 (cond * id)와 같이 해야 할까요?
2. 아니면 mutable pair를 이용할까요...
mutable pair는 (mcons 'A '(1 2))를 해도 {A . (1 2)}가 가능하더군요. 다만 괄호 모양이 좀 다르게 생겼네요...
3. 혹시 다른 방법이 있으면 알려주세요! |
|
위로 |
|
|
최원태
가입: 2006년 9월 16일 올린 글: 369
|
올려짐: 2008년10월16일 13:23 주제: |
|
|
우연히 생긴 모양이 리스트의 조건을 만족해서
리스트 형태로 출력되는 것일 뿐입니다.
사용할 때 (id, int list) 인 것으로 생각하기에는 별 무리가 없습니다. |
|
위로 |
|
|
|