2011-03-08 3 views
2

ml 프로그램에서 중첩 된 구조를 사용하여 코드를 구조화하고 있습니다. 이 구조체에 대한 서명을 정의하고 있습니다. 그러나 실제로 중첩 된 서명을 가질 수는 없습니다.중첩 서명에 대한 구문은 무엇입니까?

예 :이 같은 것을 할 싶습니다 이에 대한

structure Example = 
struct 
    structure Code = 
    struct 
    datatype mytype = Mycons of string 
    end 
end 

:

signature EXAMPLE = 
sig 
    signature CODE = (* or stucture Code - doesn't matter *) 
    sig 
    datatype mytype 
    end 
end 

지금이 작동하지 않습니다; 구문 오류가 발생합니다. 내 질문 :

  1. 이것은 좋지 않은 생각입니까? 그렇다면 왜?
  2. 어떻게하면됩니까? 중첩 된 구조에 중첩 된 서명을 적용하려면 어떻게해야합니까?

답변

3

중첩 구조가있을 때 서명의 구문에는 익숙해 져야합니다.

서명 내의 구조는이 간단한 예는 다음 호프만 [.sml] [.sig] 파일을 참조하십시오이

signature JSON = 
sig  
    type t 

    .. some signature stuff 

    structure Converter : sig  
    type json 
    type 'a t 

    ... Converter specification stuff 
    ... using type json as the parent signatures type t  
    end where type json = t  
end 

처럼 그것을 할 경우 서명을 지정하고 좀보고 시도 Tree [.sig] 파일이 조금 더 복잡한 예입니다.

구조에서 서명 사양을 언급해야합니다. 그렇지 않으면 처음부터 서명을 작성하는 것이 무의미합니다.