النمط التطبيقي لمشغلي infix؟
-
12-12-2019 - |
سؤال
هل هناك طريقة للاستفادة التطبيقية من <$>
و <*>
تبدو لطيفة عند التعامل مع مشغلي infix؟اعتقد انه
((++) <$> a <*> ((++) <$> b <*> c ))
يبدو أكثر تشوشًا بعد ذلك
a ++ b ++ c
لذلك أتساءل عما إذا كانت هناك طريقة أجمل.
المحلول
(<++>) = liftA2 (++)
a <++> b <++> c
أو
liftA2 (++) a $ liftA2 (++) b c
نصائح أخرى
انظر توماس ديفي InfixApplicative الحزمة، والتي توفر خدعة نحوية عامة، بدلاً من الاضطرار إلى تحديد مشغل جديد لكل عملية رفع.
هي يتيح لك الكتابة
(|a ++ (|b ++ c|)|)
إذا كان هذا أي فائدة.بالطبع، هناك بعض النفقات الإضافية لإنشاء طبقة المعالجة المسبقة.
لا تنتمي إلى StackOverflow