3

SML/NJにキュー構造が含まれていることがわかります。使い方がわかりません。SML / NJが提供する追加のライブラリを使用するにはどうすればよいですか?

4

3 に答える 3

3

このQueue構造はSML'97で指定されていませんが、SML/NJの最上位環境に存在します。

$ sml
ニュージャージーv110.69の標準ML[作成日:2009年3月13日金曜日16:02:47]
--Queue.mkQueue();
[自動読み込み]
[ライブラリ$SMLNJ-LIB/ Util/smlnj-lib.cmは安定しています]
[自動読み込みが完了しました]
stdIn:1.1-1.17警告:タイプ変数は、次の理由で一般化されていません
   値制限はダミータイプ(X1、X2、...)にインスタンス化されます
val it =-:?。X1 Queue.queue
-

あなたはopen構造をすることができます。これによりQueue.、すべての前に入力する必要がなくなります。ただし、これをトップレベルで行うことはお勧めしません。これは、環境を汚染し、依存しているものがはるかにわかりにくくなるためです。(別の構造内では、状況によっては許容できる場合があると思います。)

$ sml
ニュージャージーv110.69の標準ML[作成日:2009年3月13日金曜日16:02:47]
-キューを開きます。
[自動読み込み]
[ライブラリ$SMLNJ-LIB/ Util/smlnj-lib.cmは安定しています]
[自動読み込みが完了しました]
キューを開く
  タイプ'キュー
  例外デキュー
  val mkQueue:unit->'キュー
  val clear:'キュー->ユニット
  val isEmpty:'キュー->bool
  val enqueue:'キュー*'a->ユニット
  val dequeue:'キュー->'a
  val next:'キュー->'オプション
  val delete:'キュー*(' a-> bool)-> unit
  val head:'キュー->'a
  val peek:'キュー->'オプション
  val length:'キュー->int
  valの内容:'キュー->'リスト
  val app:('a-> unit)->' a queue-> unit
  val map:('a->' b)->'a queue->' b queue
  val foldl:('a *'b->'b)->'b->'キュー->'b
  val foldr:('a *'b->'b)->'b->'キュー->'b
--mkQueue();
stdIn:3.1-3.11警告:タイプ変数は、次の理由で一般化されていません
   値制限はダミータイプ(X1、X2、...)にインスタンス化されます
val it =-:?。X1キュー
-
于 2009-07-01T17:38:26.250 に答える
1

完全な答えはありませんが、正しい方向に向けることはできます。SML/NJ に組み込まれているコンパイル マネージャー (CM) を使用して検索する必要があります。Make for SML と考えることができます。

SML/NJ ライブラリのライブラリを使用するには、アプリケーションの CM 記述ファイルに smlnj-lib.cm を追加します。次に、そのライブラリの Queue などの宣言を使用できます。

smlnj Web サイトには、コンパイル マネージャーに関するドキュメントがいくつかあります。

これが少なくともあなたを正しい方向に向けることを願っています。

于 2008-10-21T23:59:44.810 に答える
0

整数キューを作成する場合は、次のコードを使用します。「int」を必要なデータ型に置き換えます。

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

他のすべてはここで見つけることができます。

于 2013-08-24T19:28:10.613 に答える