هل هناك طريقة لاستخدام طريقة فيندكس من البيانات.تعيين مع منصة هاسكل الحالية?

StackOverflow https://stackoverflow.com//questions/20031681

سؤال

بدأت مؤخرا العمل على بعض التعليمات البرمجية التي تتطلب استخدام مجموعات.لذلك ذهبت إلى هوغل وبحثت عن حل موجود ، والتي وجدت في وحدة البيانات.مجموعة.لسوء الحظ ، تحولت هوغل الوثائق لمجموعة المدرجة في الحاويات-0.5.3.1 حزمة.هذا الإصدار يحتوي على طريقة فيندندكس مفيد ، الذي خططت برنامجي حولها.

ولكن منصة هاسكل يأتي فقط مع حاويات-0.5.0.0 ، التي فيندكس غير متوفر.كما أنني قد تستخدم فقط المكتبات القادمة مع منصة هاسكل ، وأنا أبحث عن وسيلة لتشمل هذه الوظيفة أو تعريفه بنفسي.على التوالى بزيادة نسخ شفرة المصدر طرق من http://hackage.haskell.org/package/containers-0.5.3.1/docs/src/Data-Set.html من الواضح أنه لم ينجح.آمل أن تتمكن من مساعدتي في إيجاد حل لمشكلتي.

شكرا جزيلا.

هل كانت مفيدة؟

المحلول

يمكنك أن تفعل ذلك مع splitMember:

lookupIndex :: (Ord a) => a -> Set a -> Maybe Int
lookupIndex x s
   | found      = Just $ size l
   | otherwise  = Nothing
 where (l, found, _) = splitMember x s
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top