المدمجات
منقول من الكتاب المرجعي: docs/handbook/stdlib/builtins.md · الإيداع 7a52f6c
مولَّدة من builtin_funcs.BUILTINS بـscripts/gen_handbook.py؛ لا تُحرَّر باليد. المدمجة لا تحتاج استيراداً.
كل مثال يُشغَّل في tests/test_docs.py. الأخطاء المذكورة لكل مدمجة هي رسائل مصدرها (الفهرس:
فهرس رسائل الأخطاء والتحذيرات).
الصيغة: احجز(نوع, عدد[, المخصص])
يحجز كتلة من عناصر متجاورة مصفَّرة ويرجع شريحة عليها (فهرستها بفحص حدود)؛ من المخصص إن مُرّر وإلا من الافتراضي، وتُحرَّر بـ حرر(الشريحة[, المخصص])
ش = احجز(عدد32, 3)ش[0] = 7اطبع(ش, " ", طول(ش))حرر(ش)احجز_خام
رابط إلى قسم «احجز_خام»الصيغة: احجز_خام(نوع, عدد[, المخصص])
يحجز كتلة ويرجع مؤشراً إلى أولها، فهرسته بلا فحص حدود (داخل خطر)؛ تُحرَّر بـ حرر(المؤشر[, المخصص])
خطر: م = احجز_خام(عدد, 2) م[1] = 5 اطبع(م[0] + م[1]) حرر(م)الصيغة: احذف(القاموس, المفتاح) أو احذف(القائمة, الموضع)
يحذف مفتاحاً من القاموس (خطأ تشغيل إن لم يكن موجوداً)، أو العنصر رقم الموضع من القائمة (خارجها خطأ تشغيل)
ق = {"ا": 1, "ب": 2}احذف(ق, "ا")ل = [10, 20, 30]احذف(ل, 1)اطبع(ق, " ", ل)الصيغة: ادرج(القائمة, الموضع, القيمة)
يدرج القيمة قبل العنصر رقم الموضع (من 0 إلى طول القائمة؛ الطول يعني آخرها كـ اضف)
أخطاؤها:
- موضع الإدراج %lld خارج القائمة (من 0 إلى %lld)
ق = [1, 3]ادرج(ق, 1, 2)ادرج(ق, 3, 4)اطبع(ق)استبدال
رابط إلى قسم «استبدال»الصيغة: استبدال(النص, القديم, الجديد[, المخصص])
يستبدل كل ظهور للنص القديم بالجديد
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
أخطاؤها:
- النص المطلوب استبداله في ‘استبدال’ لا يمكن أن يكون فارغاً
اطبع(استبدال("قطة وقطة", "قطة", "كلب"))الصيغة: اضف(القائمة, القيمة)
يضيف قيمة إلى نهاية القائمة
أخطاؤها:
- ‘اضف’ تعمل مع القوائم فقط لكن وُجد النوع ‘…’
- ‘اضف’ تعمل مع القوائم فقط لكن … من النوع ‘…’
- لا يمكن إضافة عنصر إلى المصفوفة … لأن حجمها ثابت
- لا يمكن استخدام ‘اضف’ مع القاموس …
ق = [1]اضف(ق, 2)اطبع(ق)الصيغة: اطبع(قيمة, قيمة, ...)
يطبع القيم متتالية بلا فاصل ثم سطراً جديداً
اطبع("س = ", 3, " ", [1, 2], " ", صواب)الصيغة: اعد(المخصص)
ينهي ساحة (يعيد كل كتلها إلى أصلها) أو كاشفاً (يبلّغ عمّا لم يُحرَّر)؛ لا يُستعمل المخصص بعدها
أخطاؤها:
- المخصص أُعيد بـ ‘اعد’ من قبل
- النظام والافتراضي لا يُعادان: ‘اعد’ للساحة والكاشف
ساحه = ساحة(الافتراضي)ق = قائمة_من([1, 2], ساحه)اطبع(طول(ق))اعد(ساحه)الصيغة: اعكس(القائمة)
يعكس ترتيب عناصر القائمة في مكانها
ق = [1, 2, 3]اعكس(ق)اطبع(ق)الصيغة: اقرأ() أو اقرأ("رسالة", قيمة, ...)
صيغ أخرى للاسم: اقرا
يقرأ سطراً من إدخال المستخدم (بعد عرض رسالة اختيارية)
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
أخطاؤها:
- الوسيط رقم … لـ ‘…’ من النوع ‘…’ ولا يمكن وضعه في رسالة
س = اقرأ()اطبع("[", س, "]")انتهى_الدخل
رابط إلى قسم «انتهى_الدخل»الصيغة: انتهى_الدخل()
هل انتهى الإدخال القياسي (فلا سطر آخر تقرؤه اقرأ)؟
اسطر = 0طالما صواب: اذا انتهى_الدخل(): توقف س = اقرأ() اسطر += 1اطبع("اسطر: ", اسطر)الصيغة: بحث(النص, الجزء) أو بحث(القائمة, القيمة)
موضع أول ظهور للجزء في النص (بعدد الأحرف، من 0)، أو فهرس أول عنصر يساوي القيمة في القائمة؛ -1 إن لم يوجد
اطبع(بحث("مرحبا بالعالم", "بال"), " ", بحث([5, 7, 9], 9), " ", بحث([1], 4))تقسيم
رابط إلى قسم «تقسيم»الصيغة: تقسيم(النص, الفاصل[, المخصص])
يقسّم النص عند كل ظهور للفاصل إلى قائمة نصوص
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
أخطاؤها:
- فاصل ‘تقسيم’ لا يمكن أن يكون نصاً فارغاً
اطبع(تقسيم("ا,ب,,ج", ","))الصيغة: جديد(القيمة[, المخصص])
يحجز خانة جديدة على الكومة فيها القيمة ويرجع مؤشراً إليها (من المخصص إن مُرّر، وإلا من الافتراضي)
م = جديد(41)اطبع(محتوى(م) + 1)حرر(م)الصيغة: جزء(النص, البداية, النهاية) أو جزء(النص, البداية)
جزء من النص (بعدد الأحرف) عرضاً على بايتاته نفسها، بلا حجز ولا نسخ (0.7.0)؛ يعيش ما عاش النص الأصل، ولا يُحرَّر
ن = "مرحبا بالعالم"اطبع(جزء(ن, 6), "|", جزء(ن, 0, 5))حاول_احجز
رابط إلى قسم «حاول_احجز»الصيغة: حاول_احجز(نوع, عدد[, المخصص])
مثل احجز، لكنه يرجع !شريحة: خطأ.لا_ذاكرة إن تعذّر الحجز بدل خطأ التشغيل
ش = حاول_احجز(عدد, 4) والا خ: خطا_قاتل("لا ذاكرة")اطبع(طول(ش))حرر(ش)حجم_النوع
رابط إلى قسم «حجم_النوع»الصيغة: حجم_النوع(نوع)
عدد البايتات التي يأخذها عنصر من هذا النوع في كتلة أو شريحة
اطبع(حجم_النوع(عدد), " ", حجم_النوع(عدد32), " ", حجم_النوع(بايت))الصيغة: حرر(المؤشر[, المخصص])
يحرر الخانة التي يشير إليها المؤشر ويجعل المؤشر لاشيء (بالمخصص الذي حجزها؛ المتروك الافتراضي)
أخطاؤها:
- لا يمكن تحرير الثابت ‘…’: ‘حرر’ يجعل المؤشر لاشيء وهذا تعديل للثابت
م = جديد(1)حرر(م)اطبع(م == لاشيء)حروف_صغيرة
رابط إلى قسم «حروف_صغيرة»الصيغة: حروف_صغيرة(النص[, المخصص])
يحوّل الحروف اللاتينية إلى صغيرة
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
اطبع(حروف_صغيرة("MEEM ميم"))حروف_كبيرة
رابط إلى قسم «حروف_كبيرة»الصيغة: حروف_كبيرة(النص[, المخصص])
يحوّل الحروف اللاتينية إلى كبيرة
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
اطبع(حروف_كبيرة("Meem ميم"))الصيغة: حوّل(قيمة, نوع)
صيغ أخرى للاسم: حول
يعيد تفسير مؤشر أو شريحة بنوع آخر: مؤشر[ا] إلى مؤشر[ب] أو مؤشر_خام، شريحة[ا] إلى شريحة[ب] (داخل خطر)
أخطاؤها:
- حوّل: حجم الشريحة %lld بايتاً لا ينقسم على حجم العنصر الجديد %lld
- لا تحويل من ‘…’ إلى ‘…’
خطر: م = احجز_خام(طبيعي8, 8) م[0] = 1 ع = حوّل(م, مؤشر[عدد]) اطبع(ع[0]) حرر(م)خطا_قاتل
رابط إلى قسم «خطا_قاتل»الصيغة: خطا_قاتل(الرسالة)
ينهي البرنامج بخطأ تشغيل (رمز الخروج 3) برسالته: لخطأ المبرمج الذي لا يُكمَل بعده
اطبع("قبل")خطا_قاتل("توقف هنا")رمز الخروج: 3
الصيغة: دمج(قائمة_النصوص, الفاصل[, المخصص])
يدمج قائمة نصوص في نص واحد يفصل بينها الفاصل
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
أخطاؤها:
- الوسيط رقم 1 لـ ‘دمج’ يجب أن يكون قائمة نصوص لكن وُجد النوع ‘…’
اطبع(دمج(["ا", "ب", "ج"], " - "))دمج_نصوص
رابط إلى قسم «دمج_نصوص»الصيغة: دمج_نصوص(قطعة, قطعة, ...[, المخصص])
يبني نصاً جديداً من قيم مفردة (نصوص وأعداد وكسور ومنطقي ورموز) كما يدمجها ‘+’، من المخصص إن مُرّر وإلا من الافتراضي (0.7.0)
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
أخطاؤها:
- الوسيط رقم … لـ ‘دمج_نصوص’ من النوع ‘…’ ولا يُدمج في نص
ن = دمج_نصوص("س = ", 3, "، ص = ", 4.5)اطبع(ن)الصيغة: رتب(القائمة)
يرتّب قائمة أعداد أو كسور أو نصوص تصاعدياً في مكانها. الكسر ليس_عدداً في الآخر؛ النصوص بترتيب نقاط الترميز (لا ترتيب معجمي عربي)
أخطاؤها:
- ‘رتب’ على قائمة عناصرها ‘…’ غير مدعومة
ق = [3, 1, 2]رتب(ق)ن = ["ب", "ا"]رتب(ن)اطبع(ق, " ", ن)رتب_ب
رابط إلى قسم «رتب_ب»الصيغة: رتب_ب(القائمة, قبل)
يرتّب القائمة في مكانها بمقارن: قبل(ا, ب) صواب إن كان ا قبل ب. ترتيب مستقر (المتساويان يبقيان بترتيبهما)، ولأي نوع عناصر (منذ 0.8.0)
أخطاؤها:
- مقارن ‘رتب_ب’ من النوع ‘…’ لكن وُجد ‘…’
هيكل شخص: اسم نص عمر عددداله اصغر(ا شخص, ب شخص) منطقي: ارجع ا.عمر < ب.عمرن = [شخص("علي", 30), شخص("منى", 25), شخص("سارة", 30)]رتب_ب(ن, اصغر)لكل ش في ن: اطبع(ش.اسم, " ", ش.عمر)الصيغة: ساحة(الاصل)
مخصص يأخذ كتلاً من أصله ويحجز منها بالتتابع؛ اعد(س) يعيدها كلها دفعة واحدة (حرر وحده لا يعيد شيئاً)
ساحه = ساحة(الافتراضي)خاتمه اعد(ساحه)ق = تقسيم("ا ب ج", " ", ساحه)اطبع(ق)شريحة
رابط إلى قسم «شريحة»الصيغة: شريحة(مؤشر, الطول)
شريحة فوق كتلة: مؤشر وطول، لا تملك الكتلة؛ فهرستها بفحص حدود (تُنشأ داخل خطر)
أخطاؤها:
- ‘شريحة’ تأخذ مؤشراً إلى كتلة لكن وُجد ‘…’
- الشريحة أطول من كتلتها: طولها %lld عنصراً والكتلة %lld بايتاً
- طول الشريحة %lld سالب
- طول الشريحة عدد صحيح لا ‘…’
خطر: م = احجز_خام(عدد, 3) ش = شريحة(م, 3) ش[2] = 9 اطبع(ش) حرر(م)شريحة_خام
رابط إلى قسم «شريحة_خام»الصيغة: شريحة_خام(مؤشر_خام, نوع, الطول)
شريحة فوق ذاكرة جاءت من مكتبة C (داخل خطر؛ الطول على مسؤولية كاتبها)
أخطاؤها:
- ‘شريحة_خام’ تأخذ مؤشر_خام لكن وُجد ‘…’
- شريحة_خام: طول سالب، أو مؤشر لاشيء بطول %lld
خارجي داله نسخة(ن نص) مؤشر_خام باسم "strdup"خارجي داله احرر_c(م مؤشر_خام) فراغ باسم "free"خام = نسخة("abc")خطر: ش = شريحة_خام(خام, بايت, 3) اطبع(ش)احرر_c(خام)طبيعي16
رابط إلى قسم «طبيعي16»الصيغة: طبيعي16(قيمة)
القيمة كما يخزّنها ‘طبيعي16’، ناتجها عدد؛ خارج مداه خطأ تشغيل، وداخل بلا_فحص تلتف
اطبع(طبيعي16(65535))طبيعي32
رابط إلى قسم «طبيعي32»الصيغة: طبيعي32(قيمة)
القيمة كما يخزّنها ‘طبيعي32’، ناتجها عدد؛ خارج مداه خطأ تشغيل، وداخل بلا_فحص تلتف
اطبع(طبيعي32(4000000000))طبيعي64
رابط إلى قسم «طبيعي64»الصيغة: طبيعي64(قيمة)
القيمة كما يخزّنها ‘طبيعي64’، ناتجها عدد؛ خارج مداه خطأ تشغيل، وداخل بلا_فحص تلتف
اطبع(طبيعي64(9223372036854775807))طبيعي8
رابط إلى قسم «طبيعي8»الصيغة: طبيعي8(قيمة)
صيغ أخرى للاسم: بايت
القيمة كما يخزّنها ‘طبيعي8’، ناتجها عدد؛ خارج مداه خطأ تشغيل، وداخل بلا_فحص تلتف
خطر: اطبع(بلا_فحص طبيعي8(256 + 7))الصيغة: طول(المجموعة)
عدد عناصر قائمة أو مصفوفة أو قاموس، أو عدد أحرف نص
أخطاؤها:
- دالة ‘طول’ تعمل فقط مع القوائم والمصفوفات والقواميس والنصوص لكن وُجد النوع ‘…’
- دالة ‘طول’ لا تعمل مع النوع ‘…’
اطبع(طول("مرحبا"), " ", طول([1, 2, 3]), " ", طول({"ا": 1}))الصيغة: عدد(القيمة)
يحوّل كسراً أو قيمة منطقية إلى عدد صحيح، ونصاً إلى !عدد (خطأ.صيغة_خاطئة لنص ليس عدداً، وخطأ.خارج_المدى لعدد لا يتسع في 64 بتاً)
أخطاؤها:
- لا يمكن تحويل الكسر %s إلى عدد: خارج مدى الأعداد الصحيحة أو ليس عدداً
- لا يمكن تحويل النوع ‘…’ إلى عدد
اطبع((عدد("42") والا 0) + 1, " ", عدد("س") والا -1, " ", عدد(3.9), " ", عدد(-3.9))عدد16
رابط إلى قسم «عدد16»الصيغة: عدد16(قيمة)
القيمة كما يخزّنها ‘عدد16’، ناتجها عدد؛ خارج مداه خطأ تشغيل، وداخل بلا_فحص تلتف
اطبع(عدد16(-30000))عدد32
رابط إلى قسم «عدد32»الصيغة: عدد32(قيمة)
القيمة كما يخزّنها ‘عدد32’، ناتجها عدد؛ خارج مداه خطأ تشغيل، وداخل بلا_فحص تلتف
اطبع(عدد32(2000000000))الصيغة: عدد8(قيمة)
القيمة كما يخزّنها ‘عدد8’، ناتجها عدد؛ خارج مداه خطأ تشغيل، وداخل بلا_فحص تلتف
اطبع(عدد8(100), " ", طبيعي8(255))قائمة_من
رابط إلى قسم «قائمة_من»الصيغة: قائمة_من(القائمة, المخصص)
قائمة جديدة من المخصص بعناصر القائمة نفسها (نسخة مستوى واحد: الحاويات والنصوص فيها مشتركة)؛ تكبر من مخصصها وتُحرَّر بـ حرر (0.7.0)
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
أخطاؤها:
- ‘قائمة_من’ تأخذ قائمة لا ‘…’
ساحه = ساحة(الافتراضي)ق = قائمة_من([1, 2, 3], ساحه)اطبع(ق)اعد(ساحه)الصيغة: قص(النص, البداية, النهاية[, المخصص]) أو قص(النص, البداية)
جزء من النص من البداية إلى ما قبل النهاية (بعدد الأحرف)
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
اطبع(قص("مرحبا بالعالم", 0, 5), "|", قص("مرحبا", 2))قص_الفراغات
رابط إلى قسم «قص_الفراغات»الصيغة: قص_الفراغات(النص)
النص بلا فراغات في أوله وآخره (المسافة و\t و\n و\r و\v و\f)، عرضاً على بايتاته نفسها بلا حجز (كـ جزء)
اطبع("[", قص_الفراغات(" نص \n"), "]")الصيغة: قطعة(شريحة, من, الى)
جزء من شريحة: من الفهرس «من» إلى ما قبل «الى»، على الذاكرة نفسها (بفحص الحدود)
أخطاؤها:
- ‘قطعة’ تأخذ شريحة لكن وُجد ‘…’
- القطعة من %lld إلى %lld خارج الشريحة (طولها %lld)
- حدّا القطعة عددان صحيحان لا ‘…’
ش = احجز(عدد, 5)ش[3] = 3اطبع(قطعة(ش, 2, 4))حرر(ش)الصيغة: قيم(القاموس[, المخصص])
قائمة جديدة بقيم القاموس بترتيب الإدراج، من المخصص (المتروك الافتراضي)؛ القيم نفسها لا نُسخ (قائمة في القاموس هي القائمة نفسها)
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
ق = {"ا": 1, "ب": 2}اطبع(قيم(ق))الصيغة: كاشف(الاصل)
مخصص يلفّ أصله ويسجّل كل كتلة: يكشف التحرير المزدوج والتحرير بمخصص آخر، ويبلّغ عمّا لم يُحرَّر عند اعد أو عند نهاية البرنامج
ك = كاشف(الافتراضي)م = جديد(1, ك)حرر(م, ك)اعد(ك)اطبع("لا تسريب")الصيغة: كسر(القيمة)
يحوّل عدداً إلى كسر، ونصاً إلى !كسر (خطأ.صيغة_خاطئة لنص ليس كسراً، وخطأ.خارج_المدى لكسر لا يتسع مثل 1e400)
أخطاؤها:
- لا يمكن تحويل النوع ‘…’ إلى كسر
اطبع((كسر("2.5") والا 0.0) * 2, " ", كسر(3))كسر32
رابط إلى قسم «كسر32»الصيغة: كسر32(قيمة)
القيمة كما يخزّنها ‘كسر32’، ناتجها كسر؛ خارج مداه خطأ تشغيل، وداخل بلا_فحص تلتف
اطبع(كسر32(0.1))محتوى
رابط إلى قسم «محتوى»الصيغة: محتوى(المؤشر)
الخانة التي يشير إليها المؤشر: تُقرأ ويُسند إليها (محتوى(م) = قيمة)
م = جديد("نص")اطبع(محتوى(م))حرر(م)مخزن_ثابت
رابط إلى قسم «مخزن_ثابت»الصيغة: مخزن_ثابت(شريحة_بايتات)
مخصص يحجز بالتتابع من بايتات شريحة معطاة، بلا نظام؛ الحجز منه بعد امتلائه خطأ تشغيل (أو لاشيء مع حاول_احجز). حرر به لا يعيد شيئاً
أخطاؤها:
- ‘مخزن_ثابت’ يأخذ شريحة[بايت] لا ‘…’
خطر: خام = احجز(بايت, 256) م = مخزن_ثابت(خام) خ = جديد(7, م) اطبع(محتوى(خ)) اعد(م) حرر(خام)الصيغة: لكل ع في مدى(النهاية): أو مدى(البداية, النهاية) أو مدى(البداية, النهاية, الخطوة)
أعداد متتالية لحلقة لكل، من البداية إلى ما قبل النهاية
أخطاؤها:
- ‘مدى’ تُستخدم فقط في رأس حلقة ‘لكل’
- حدود ‘مدى’ يجب أن تكون أعداداً صحيحة لكن وُجد النوع ‘…’
- خطوة ‘مدى’ لا يمكن أن تكون صفراً
لكل ع في مدى(0, 3): اطبع(ع)مفاتيح
رابط إلى قسم «مفاتيح»الصيغة: مفاتيح(القاموس[, المخصص])
قائمة جديدة بمفاتيح القاموس بترتيب الإدراج، من المخصص (المتروك الافتراضي)؛ المفاتيح النصية نُسخ
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
ق = {"ا": 1, "ب": 2}اطبع(مفاتيح(ق))من_نص_سي
رابط إلى قسم «من_نص_سي»الصيغة: من_نص_سي(خ)
نص يعرض بايتات نص_سي بلا نسخ، طوله حتى أول صفر (داخل خطر)؛ يبقى صالحاً ما بقيت الذاكرة. نص_سي قيمته لاشيء يعطي لاشيء
أخطاؤها:
- ‘من_نص_سي’ تأخذ نص_سي (مؤشر[طبيعي8]) لكن وُجد ‘…’
خ = نص_سي("سي")خطر: اطبع(طول(من_نص_سي(خ)))حرر(خ)الصيغة: نسخ(القيمة[, المخصص])
نسخة عميقة مستقلة من قائمة أو قاموس أو هيكل أو مصفوفة (بكل ما بداخلها من حاويات)، من المخصص إن مُرّر وإلا من الافتراضي؛ النصوص فيها مشتركة لا تُنسخ
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
أخطاؤها:
- ‘نسخ’ تعمل مع القوائم والقواميس والهياكل والمصفوفات لكن وُجد النوع ‘…’
- ‘نسخ’ لا تعمل مع النوع ‘…’
ا = [[1], [2]]ب = نسخ(ا)اضف(ب[0], 9)اطبع(ا, " ", ب)الصيغة: نص(القيمة[, المخصص])
يحوّل قيمة مفردة (عدد، كسر، منطقي، رمز، لاشيء) إلى نص؛ النص يبقى كما هو
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
أخطاؤها:
- لا يمكن تحويل … إلى نص
اطبع(نص(12) + نص(0.5) + نص(صواب))نص_سي
رابط إلى قسم «نص_سي»الصيغة: نص_سي(النص[, المخصص])
نسخة من النص منتهية بصفر لدوال C (char *، النوع نص_سي)، تُحجز من المخصص إن مُرّر وإلا من الافتراضي؛ تُحرَّر بـ حرر(خ[, المخصص])
المخصص الأخير اختياري (يُعرف بنوعه): ما تبنيه يُحجز منه، وإلا من الافتراضي.
أخطاؤها:
- ‘نص_سي’ تأخذ نصاً لكن وُجد ‘…’
- ‘نص_سي’ على نص قيمته لاشيء (تحقق منه أولاً: س != لاشيء)
خ = نص_سي("ميم")خطر: اطبع(من_نص_سي(خ), " ", خ[0])حرر(خ)يبدأ_بـ
رابط إلى قسم «يبدأ_بـ»الصيغة: يبدأ_بـ(النص, البادئة)
هل يبدأ النص بالبادئة؟ (البادئة الفارغة: صواب)
اطبع(يبدأ_بـ("مرحبا", "مر"), " ", يبدأ_بـ("مرحبا", "حبا"))الصيغة: يحوي(النص, الجزء) أو يحوي(القائمة, القيمة) أو يحوي(القاموس, المفتاح)
هل يظهر الجزء في النص، أو القيمة في القائمة، أو المفتاح في القاموس (كـ يوجد)؟
اطبع(يحوي("ميم", "ي"), " ", يحوي([1, 2], 3), " ", يحوي({"ا": 1}, "ا"))ينتهي_بـ
رابط إلى قسم «ينتهي_بـ»الصيغة: ينتهي_بـ(النص, اللاحقة)
هل ينتهي النص باللاحقة؟ (اللاحقة الفارغة: صواب)
اطبع(ينتهي_بـ("ملف.txt", ".txt"), " ", ينتهي_بـ("ملف.txt", ".م"))الصيغة: يوجد(القاموس, المفتاح)
هل المفتاح موجود في القاموس؟
ق = {"ا": 1}اطبع(يوجد(ق, "ا"), " ", يوجد(ق, "ب"))