للحصول على العنصر الأيسر من دالة 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
حسب احتياجاتك الفعلية.
مقالات ذات صلة
-
حل مشكلة خطأ Plugin ‘auth_socket’ MySQL05/03/2024
-
حل مشكلة setContentView في Fragments ببساطة07/02/2024
المزيد من المعلومات
بالتأكيد! في الكود السابق، تم استيراد Data.Either
و Data.List
لاستخدامهما في التعامل مع القيم المرجعية وتجميع القوائم على التوالي.
- تم استخدام
isLeft
وfromLeft
منData.Either
للتحقق من نوع القيمة المرجعية (Either
) واستخراج القيمة الأيسرة في حالة كانت من النوعLeft
. intercalate
منData.List
تستخدم لتجميع القيم في القائمة بفاصلة معينة.
يرجى ملاحظة أن الكود السابق يحتوي على استخدام undefined
كقيمة للتوضيح فقط، ويجب استبدالها بالقيم الفعلية التي تحتاجها في تطبيقك الفعلي.