문제

SML/NJ에 큐 구조가 포함되어 있습니다. 사용 방법을 알 수 없습니다. SML/NJ가 제공하는 추가 라이브러리를 어떻게 사용합니까?

도움이 되었습니까?

해결책

그만큼 Queue 구조 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
- 

다른 팁

나는 당신에게 완전한 대답이 없지만 당신을 올바른 방향으로 가리킬 수 있습니다. SML/NJ에 내장 된 컴파일 관리자 (CM)를 사용해야합니다. 당신은 그것을 SML을 위해 생각할 수 있습니다.

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

SMLNJ 웹 사이트에는 다음에 대한 문서가 있습니다 편집 관리자.

이것이 적어도 당신을 올바른 방향으로 가리키길 바랍니다.

정수 대기열을 만들려면 다음 코드를 사용하십시오. 원하는 데이터 유형으로 'int'를 교체하십시오.

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

다른 모든 것을 찾을 수 있습니다 여기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top