للحصول على العنصر الأيسر من دالة Either
في Haskell، يمكنك استخدام pattern matching. في الوظيفة التي تعود -> [Error]
، يمكنك استخدام case
لفحص قيمة Either
واستخراج القيمة المناسبة. هناك طرق مختلفة للقيام بذلك، وإليك كيفية القيام بذلك باستخدام case
:
مقالات ذات صلة
haskellimport Data.Either (isLeft, fromLeft) import Data.List (intercalate) getCorError :: a -> b -> Either c [Error] getCorError _ _ = Left (Expected undefined) data Error = Expected Int deriving Show getErrorList :: a -> b -> [Error] getErrorList a b = case getCorError a b of Left err -> [err] Right errs -> errs main :: IO () main = do let a = undefined b = undefined errors = getErrorList a b putStrLn $ "Errors: " ++ intercalate ", " (map show errors)
هذا المثال يستخدم Data.Either
لاستخراج العنصر الأيسر من Either
و Data.List
لتجميع القائمة المرجعية. يجب عليك تعديل getCorError
و Error
حسب احتياجاتك الفعلية.
المزيد من المعلومات
بالتأكيد! في الكود السابق، تم استيراد Data.Either
و Data.List
لاستخدامهما في التعامل مع القيم المرجعية وتجميع القوائم على التوالي.
- تم استخدام
isLeft
وfromLeft
منData.Either
للتحقق من نوع القيمة المرجعية (Either
) واستخراج القيمة الأيسرة في حالة كانت من النوعLeft
. intercalate
منData.List
تستخدم لتجميع القيم في القائمة بفاصلة معينة.
يرجى ملاحظة أن الكود السابق يحتوي على استخدام undefined
كقيمة للتوضيح فقط، ويجب استبدالها بالقيم الفعلية التي تحتاجها في تطبيقك الفعلي.
الوسوم
Either Error Haskell Pattern Matching