HeadlinesBriefing HeadlinesBriefing.com

شرح مُجمِّعات المحلِّلات مع أمثلة

Hacker News •
×

مُجمِّعات المحلِّلات هي دوال تأخذ سلسلة نصية مدخلة وتعيد قيمة محلَّلة مع السلسلة المتبقية غير المعالجة. يُعرَّف Parser<T> على النحو التالي: (input: string) => [T, string]. على سبيل المثال، يحلّل p Integer النص "10 20 30" إلى الرقم 10 مع بقية النص " 20 30". ويستخرج p Hello الكلمة "Hello" من "Hello 100" تاركًا " 100". ويستهلك p Ignore Whitespace المسافات مُعيدًا " " و "100". ثم يحلّل p Integer النص "100" إلى الرقم 100 وسلسلة فارغة.

تتيح مُجمِّعات التسلسل مثل p Seq دمج المحلِّلات: إذ يحلّل p Seq(p Hello, p Ignore Whitespace, p Integer) النص "Hello 100" إلى المجموعة ["Hello", null, 100]. ويحوّل مُجمِّع p Map القيم المحلَّلة، مثل تحويل ["Hello", null, 100] إلى {greeting: "Hello", who: 100}. وبالمثل، يحلّل p Seq(p Number, p Semicolon) النص "10;20;30;" إلى قائمة أرقام عبر تطبيق المحلِّل مرارًا لاستهلاك كل زوج رقم-فاصلة منقوطة.

يوضح المقال أيضًا تحليل مخرجات أمر ping الخاص بالشبكات، مبينًا كيف يمكن استخراج بيانات منظمة من نص خام باستخدام هذه المُجمِّعات. كما توضح عمليتا fold وunfold كيف يمكن للمحلِّلات تقليص القيم أو إعادة بنائها، مثل جمع عناصر قائمة، أو تحويل "Hello 100" إلى ["Hello", " ", 100] والعكس.

المصدر: Hacker News · لخّصه HeadlinesBriefing