لبات ASPLلبات 0.7.0

البحث في التوثيق

يبدأ البحث بالتوثيق الحالي بالعربية · لبات 0.7.0

اكتب اسما كاملا مثل read_line أو كلمات عن الموضوع.

    English
    ملفات المصدر

    افتح ملف .aspl أو .لبات بترميز UTF-8، حتى 1 MiB، في مسودة جديدة. يبقى الملف في هذا المتصفح ولا يُشغّل تلقائياً.

    الدوال والقيم القابلة للاستدعاء

    لبات 0.7.0 · الإصدار الحالي

    عرّف مساعدين معلنين النوع وخزّن القيم القابلة للاستدعاء ومررها وأعدها وقارنها واستدعها.

    محتويات الصفحة

    الدوال على المستوى الأعلى

    تدعم لبات 0.7.0 هذه القواعد في التنفيذ الأصلي والمتصفح. عرّف الدوال المساعدة على مستوى الملف باستخدام fn / دالة مع أنواع معلنة للمعاملات والنتيجة. الأسماء فريدة داخل وحدة المصدر. لا تدعم اللغة التحميل الزائد أو التعريفات المتداخلة أو الإغلاقات أو المعاملات الافتراضية أو الدوال ذات العدد المتغير من المعاملات. لا يمكن لتعريف أن يحل محل اسم مدمج. ضع العبارات التنفيذية داخل الدوال.

    ترتيب التعريفات لا يهم، ويجوز الاستدعاء الذاتي. تقيّم الاستدعاءات الوسائط من اليسار إلى اليمين وتمرر القيم بالنسخ. المعاملات غير قابلة للتغيير. تحتفظ القوائم والسجلات بدلالات النسخ عند الاستدعاء. يجب أن يعيد كل مسار في دالة غير unit قيمة من نوع النتيجة المعلن. تعني unit عدم وجود قيمة لتخزينها أو تمريرها.

    مقطع توضيحي

    دالة طبق(عمل: دالة(ص64) -> ص64, قيمة: ص64) -> ص64 {
        أرجع عمل(قيمة).
    }

    القيم القابلة للاستدعاء المعلنة النوع

    الدالة المسماة على المستوى الأعلى قيمة أيضا. يصف fn(i64) -> i64 / دالة(ص64) -> ص64 معاملا واحدا ونتيجة، دون أسماء المعاملات. يصف fn() -> unit قيمة قابلة للاستدعاء بلا معاملات ولا نتيجة. يجب أن تتطابق أنواع المعاملات والنتيجة كاملة، ولا يحوّل الإسناد توقيع الدالة.

    انسخ القيمة أو مررها أو أعدها أو استدعها أو خزّنها في قائمة أو سجل أو نتيجة. يمكن أن يأتي الاستدعاء بعد حقل أو فهرس قائمة أو دالة تعيد قيمة قابلة للاستدعاء، مثل carrier::callback(38) أو saved[0](38) أو choose()(38). لا تلتقط الدالة بيئة محلية. تقارن matches / يطابق وnot matches / لا يطابق هوية الدالة بين أنواع استدعاء متوافقة. لا تدعم هذه القيم الترتيب أو الحساب.

    المتصفح والمضيف الأصلي · لبات 0.7.0 · مصدر عربي

    التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0

    المتطلبات السابقة:
    • يتطلب فهم الدوال والقوائم والسجلات والنتائج. لا يحتاج ملفات بيانات.

    الإدخال: لا يحتاج إلى أسطر إدخال.

    دالة زيادة(قيمة: ص64) -> ص64 { أرجع قيمة + 4. }
    دالة اختر() -> دالة(ص64) -> ص64 { أرجع زيادة. }
    سجل حامل { استدعاء: دالة(ص64) -> ص64 }
    دالة طبق(عمل: دالة(ص64) -> ص64, قيمة: ص64) -> ص64 { أرجع عمل(قيمة). }
    دالة ابدأ_الرئيسية() -> ص64 {
        دع محفوظ: قائمة<دالة(ص64) -> ص64> = [اختر()].
        دع مغلف: نتيجة<دالة(ص64) -> ص64> = نجاح(محفوظ[0]).
        دع عنصر = حامل { استدعاء: مغلف::قيمة }.
        إذا عنصر::استدعاء لا يطابق زيادة { أرجع 1. }
        اطبع(نسق_ص64(طبق(عنصر::استدعاء, 38)) + "\س").
        أرجع 0.
    }
    
    تنزيل قيم-الدوال.لبات

    النتائج المتوقعة
    {
      "browser": {
        "check": "success",
        "class": "success",
        "output": "42\n",
        "processStatus": 0
      },
      "native": {
        "check": 0,
        "status": 0,
        "output": "42\n"
      }
    }

    الإتاحة وقيود المدخل

    تشير القيم القابلة للاستدعاء إلى دوال المستخدم فقط. المدخل المحجوز start_main / ابدأ_الرئيسية والدوال المدمجة والتعريفات الأجنبية ودوال المكتبات المورّدة ليست قيما قابلة للاستدعاء. لا يمكن استدعاء المدخل من المصدر أيضا.

    تعريفات وحدات المصدر الأصلية خاصة افتراضيا. يفشل المرجع المباشر lib::hidden بسبب private-member. يجوز أن تعيد الدالة المصدّرة lib::choose() قيمة تشير إلى مساعدها الخاص، ويصح استلام هذه القيمة واستدعاؤها. يجب ألا تكشف التواقيع المصدّرة سجلا خاصا، حتى داخل قيمة قابلة للاستدعاء أو قائمة أو نتيجة. هذا الفشل هو private-type-exposure.

    اقرأ وحدات المصدر والتصدير لقواعد الإتاحة الأصلية. يدعم المتصفح ملف مصدر واحدا ولا يحمّل وحدات مصدر المستخدم.

    الإخفاقات والأمثلة الكاملة

    يؤدي عدد الوسائط الخاطئ إلى argument-count-mismatch، ويؤدي نوع وسيط أو نتيجة أو قيمة استدعاء غير متوافق إلى type-mismatch. يؤدي مسار بلا إرجاع في دالة غير وحدة إلى missing-return. محاولة أخذ المدخل كقيمة تؤدي إلى undefined-name. هذه أخطاء فحص، منفصلة عن فخاخ الحساب أو حد الاستدعاء الذاتي أثناء التنفيذ.

    يعيد مثال المضروب حالة عملية 120 دون خرج. هذا تنفيذ ناجح لغويا بحالة عملية غير صفرية، فتعدّ الصدفة الأمر غير ناجح. يطبع مثال القيم القابلة للاستدعاء 42 ويعيد 0.

    المتصفح والمضيف الأصلي · لبات 0.7.0 · مصدر عربي

    التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0

    المتطلبات السابقة:
    • لا يتطلب معرفة سابقة لفتحه وفحصه.

    الإدخال: لا يحتاج إلى أسطر إدخال.

    دالة مضروب(القيمة: ص64) -> ص64 {
        إذا القيمة <= 1 {
            أرجع 1.
        }
        أرجع القيمة * مضروب(القيمة - 1).
    }
    
    دالة ابدأ_الرئيسية() -> ص64 {
        أرجع مضروب(5).
    }
    
    تنزيل دوال.لبات

    النتائج المتوقعة
    {
      "browser": {
        "check": "success",
        "class": "success",
        "output": "",
        "processStatus": 120
      },
      "native": {
        "check": 0,
        "status": 120,
        "output": ""
      }
    }

    راجع مصادر الدوال ومصادر القيم القابلة للاستدعاء والفحص والتشغيل والبناء الأصلي.

    تصفح الصفحات