الدوال
تعريف دالة
sad
دالة جمع(أ، ب)
ارجع أ + ب
نهاية
متغير ناتج = جمع(3، 5)
اطبع(ناتج) # 8الوسائط الافتراضية
sad
دالة رحّب(اسم، تحية = "مرحباً")
اطبع_سطر(تحية + " يا " + اسم + "!")
نهاية
رحّب("أحمد") # مرحباً يا أحمد!
رحّب("سارة"، "أهلاً") # أهلاً يا سارة!الدوال المجهولة (لامدا)
الدوال المجهولة تُنشأ بالكلمة لامدا متبوعة بالمعاملات ثم : ثم التعبير:
sad
# لامدا بمعامل واحد
متغير مربع = لامدا س: س * س
اطبع(مربع(4)) # 16
اطبع(مربع(7)) # 49sad
# لامدا بمعاملين
متغير جمع = لامدا أ، ب: أ + ب
اطبع(جمع(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التالي: التحكم في التدفق ←