2008-10-13 11 views

답변

3

Queue structure은 SML '97에 지정되어 있지 않지만 SML/NJ의 최상위 환경에 있습니다.

 
$ sml 
Standard ML of New Jersey v110.69 [built: Fri Mar 13 16:02:47 2009] 
- Queue.mkQueue(); 
[autoloading] 
[library $SMLNJ-LIB/Util/smlnj-lib.cm is stable] 
[autoloading done] 
stdIn:1.1-1.17 Warning: type vars not generalized because of 
    value restriction are instantiated to dummy types (X1,X2,...) 
val it = - : ?.X1 Queue.queue 
- 

구조는 open입니다. 이렇게하면 모든 항목 앞에 Queue.을 입력하지 않아도됩니다. 그것은 환경을 오염시키고 그것이 당신이 의존하고있는 것이 훨씬 덜 명백하기 때문에 최상위 레벨에서 이것을하는 것이 바람직하지 않습니다. (다른 구조 내에서 어떤 상황에서는 받아 들일 수 있다고 말하고 싶습니다.)

 
$ sml 
Standard ML of New Jersey v110.69 [built: Fri Mar 13 16:02:47 2009] 
- open Queue; 
[autoloading] 
[library $SMLNJ-LIB/Util/smlnj-lib.cm is stable] 
[autoloading done] 
opening Queue 
    type 'a queue 
    exception Dequeue 
    val mkQueue : unit -> 'a queue 
    val clear : 'a queue -> unit 
    val isEmpty : 'a queue -> bool 
    val enqueue : 'a queue * 'a -> unit 
    val dequeue : 'a queue -> 'a 
    val next : 'a queue -> 'a option 
    val delete : 'a queue * ('a -> bool) -> unit 
    val head : 'a queue -> 'a 
    val peek : 'a queue -> 'a option 
    val length : 'a queue -> int 
    val contents : 'a queue -> 'a list 
    val app : ('a -> unit) -> 'a queue -> unit 
    val map : ('a -> 'b) -> 'a queue -> 'b queue 
    val foldl : ('a * 'b -> 'b) -> 'b -> 'a queue -> 'b 
    val foldr : ('a * 'b -> 'b) -> 'b -> 'a queue -> 'b 
- mkQueue(); 
stdIn:3.1-3.11 Warning: type vars not generalized because of 
    value restriction are instantiated to dummy types (X1,X2,...) 
val it = - : ?.X1 queue 
- 
1

전적으로 답변을 드릴 수는 없지만 올바른 방향으로 안내해 드릴 수는 있습니다. SML/NJ에 내장 된 컴파일 관리자 (CM)를 사용하여 검색해야합니다. 당신은 Make for SML이라고 생각할 수 있습니다.

SML/NJ 라이브러리의 라이브러리를 사용하려면 smlnj-lib.cm을 응용 프로그램의 CM 설명 파일에 추가하십시오. 그런 다음 해당 라이브러리의 대기열과 같은 선언을 사용할 수 있습니다.

smlnj 웹 사이트에는 compilation manager에 대한 몇 가지 문서가 있습니다.

적어도 올바른 방향으로 안내해주세요.

0

정수 큐를 만들려면 다음 코드를 사용하십시오. 'int'를 원하는 데이터 유형으로 바꿉니다.

val que = Queue.mkqueue(): int Queue.queue 

다른 모든 찾을 수 있습니다 here.