كيف يمكنني استخدام المكتبة قائمة انتظار في SML / NJ
سؤال
وأنا أرى أن 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 -
نصائح أخرى
وليس لدي إجابة كاملة بالنسبة لك ولكن يمكنني أن أشير لكم في الاتجاه الصحيح. يجب أن قمت بالبحث باستخدام إدارة مجموعة (CM) التي بنيت في لSML / NJ. يمكنك التفكير في الأمر كما جعل لSML.
لاستخدام المكتبة من مكتبة SML / NJ لك ثم إضافة smlnj-lib.cm إلى ملف وصف CM من التطبيق الخاص بك. ثم يمكنك استخدام الإعلانات مثل طابور من هذه المكتبة.
والموقع smlnj لديه بعض الوثائق حول مدير تجميع .
وهذا الأمل على الأقل نقطة لكم في الاتجاه الصحيح.
إذا كنت تريد إنشاء قائمة انتظار صحيح، استخدام التعليمات البرمجية التالية. استبدال 'الباحث' مع نوع البيانات التي تريدها.
val que = Queue.mkqueue(): int Queue.queue
كل شيء آخر يمكن العثور هنا.