Skip to content

الدوال

تعريف دالة

sad
دالة جمع(أ، ب)
  ارجع أ + ب
نهاية

متغير ناتج = جمع(3، 5)
اطبع(ناتج)  # 8

الوسائط الافتراضية

sad
دالة رحّب(اسم، تحية = "مرحباً")
  اطبع_سطر(تحية + " يا " + اسم + "!")
نهاية

رحّب("أحمد")            # مرحباً يا أحمد!
رحّب("سارة"، "أهلاً")   # أهلاً يا سارة!

الدوال المجهولة (لامدا)

الدوال المجهولة تُنشأ بالكلمة لامدا متبوعة بالمعاملات ثم : ثم التعبير:

sad
# لامدا بمعامل واحد
متغير مربع = لامدا س: س * س

اطبع(مربع(4))   # 16
اطبع(مربع(7))   # 49
sad
# لامدا بمعاملين
متغير جمع = لامدا أ، ب: أ + ب
اطبع(جمع(3، 5))  # 8

صيغة اللامدا

الصيغة: لامدا معامل1، معامل2: تعبير

لا تُستخدم الأقواس حول المعاملات — النقطتان : تفصل المعاملات عن جسم التعبير.

الدوال كقيم

sad
دالة نفّذ_دالتين(د1، د2، قيمة)
  ارجع د2(د1(قيمة))
نهاية

دالة ضاعف(ن)
  ارجع ن * 2
نهاية

دالة أضف_عشرة(ن)
  ارجع ن + 10
نهاية

اطبع(نفّذ_دالتين(ضاعف، أضف_عشرة، 5))  # 20

الدوال المتكررة (Recursive)

sad
دالة عاملي(ن)
  إذا (ن <= 1)
    ارجع 1
  نهاية
  ارجع ن * عاملي(ن - 1)
نهاية

اطبع(عاملي(5))   # 120
اطبع(عاملي(10))  # 3628800

الدوال غير المتزامنة

sad
غير_متزامن دالة جلب_بيانات(رابط)
  متغير رد = انتظر طلب_http(رابط)
  ارجع رد.النص()
نهاية

غير_متزامن دالة الرئيسية()
  متغير بيانات = انتظر جلب_بيانات("https://api.example.com/data")
  اطبع_سطر(بيانات)
نهاية

إرجاع قيم متعددة

sad
دالة قسمة_مع_باقي(أ، ب)
  ارجع [أ / ب، أ % ب]
نهاية

متغير نتائج = قسمة_مع_باقي(17، 5)
اطبع("الحاصل: " + نتائج[0])  # 3
اطبع("الباقي: " + نتائج[1])  # 2

التالي: التحكم في التدفق ←

مُرخَّص بموجب رخصة MIT