هل هناك طريقة لاستخدام طريقة فيندكس من البيانات.تعيين مع منصة هاسكل الحالية?
-
21-12-2019 - |
سؤال
بدأت مؤخرا العمل على بعض التعليمات البرمجية التي تتطلب استخدام مجموعات.لذلك ذهبت إلى هوغل وبحثت عن حل موجود ، والتي وجدت في وحدة البيانات.مجموعة.لسوء الحظ ، تحولت هوغل الوثائق لمجموعة المدرجة في الحاويات-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
لا تنتمي إلى StackOverflow