| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
김진산
가입: 2006년 9월 13일 올린 글: 45
|
올려짐: 2007년9월29일 16:46 주제: signature 사용시 발생하는 문제. |
|
|
아래는 예제로 나온 정수 스택입니다.
| 코드: |
signature IntStackSig =
sig
type intstack
exception IntStackEmpty
val emptyStack : intstack
val push : intstack * int -> intstack
val pop : intstack -> int * intstack
end
structure IntStack : IntStackSig =
struct
type intstack = int list
exception IntStackEmpty
val emptyStack = []
fun push (stk, itm) = itm::stk
fun pop [] = raise IntStackEmpty
| pop (itm::stk) = (itm,stk)
end
|
이를 아래와 같이 실행해 보았습니다.
| 인용: |
# val s = IntStack.emptyStack;;
val s: IntStack.intstack = <abstr>
# val s = IntStack.push(s, 3);;
val s: IntStack.intstack = <abstr>
|
<abstr>이 무엇일까요? 제가 잘못 사용한 부분이 있나요?
다른 분들은 이런 문제 없으셨나요. @_@? |
|
| 위로 |
|
 |
남기웅 손님
|
올려짐: 2007년9월30일 16:41 주제: |
|
|
밑에 signature에 대한 비슷한 질문과 관계된 것인가 봅니다. 결과는 저도 똑같이 나오네요.
signature를 붙였기 때문에 intstack 타입일 뿐이고 int list라고 인식하지 않는 것 같습니다.
nML의 프로그래밍은 좀 특이한 면이 있는 것 같네요 . 특히 signature와 structure에 대해서는 이해가 저는 전혀 이해가 안되네요. |
|
| 위로 |
|
 |
이광근
가입: 2005년 8월 29일 올린 글: 68
|
올려짐: 2007년10월1일 1:11 주제: |
|
|
| 남기웅 씀: | 밑에 signature에 대한 비슷한 질문과 관계된 것인가 봅니다. 결과는 저도 똑같이 나오네요.
signature를 붙였기 때문에 intstack 타입일 뿐이고 int list라고 인식하지 않는 것 같습니다.
nML의 프로그래밍은 좀 특이한 면이 있는 것 같네요 . 특히 signature와 structure에 대해서는 이해가 저는 전혀 이해가 안되네요. |
signature로둘러싸면
signature에서말하는것*만*외부에드러나집니다
보라
있는것만보라
instack은타입이다
어떤놈인지는외부에알리지안고있지않느냐
그타입의속내용이 완전히가려져있지않느냐
이런타입을
"abstract data type"이라고합니다
그래서<abst>라고한것입니다
-K |
|
| 위로 |
|
 |
|