اللازانيا

اللازانيا

تمرين تعلّمي

مقدمة

الأساسيات

الدوال

في Gleam تُعرَّف الدوال باستخدام صيغة pub fn.

pub fn add(x: Int, y: Int) -> Int {
  x + y
}

تأخذ هذه الدالة وسيطين، كلاهما من النوع Int، وتُرجع قيمة من النوع Int. لا توجد كلمة مفتاحية return في Gleam، فقيمة آخر تعبير في الدالة تُرجع دائمًا ضمنيًا.

توصيفات النوع للوسائط ونوع الإرجاع اختيارية، وسيتحقق Gleam دائمًا من أنواع الكود بالكامل. عادةً ما يضيف مبرمجو Gleam توصيفات النوع إلى دوالهم للتوضيح، لكن يمكنك حذفها إن أردت.

pub fn add(x, y) {
  x + y
}

يمكن استدعاء الدالة باستخدام صيغة function_name(argument1, argument2).

pub fn double(x: Int) -> Int {
  // Call the add function defined above
  add(x, x)
}

المتغيرات

في Gleam تُعرَّف المتغيرات باستخدام صيغة let name = expression.

pub fn main() {
  let count = 1
}

يمكن الإعلان عن المتغيرات مع توصيفات النوع. وكما هو الحال مع وسائط الدوال، فإن هذه التوصيفات اختيارية، رغم أن معظم مبرمجي Gleam يحذفون توصيفات النوع للمتغيرات للاختصار.

pub fn main() {
  let count: Int = 1
}

السلاسل النصية الحرفية

في Gleam تُكتب السلاسل النصية باستخدام علامات الاقتباس المزدوجة.

pub fn greeting() {
  "Hello, world!"
}

تعليقات الكود

يمكن استخدام التعليقات لترك ملاحظات لمبرمجين آخرين يقرؤون الكود المصدري. التعليقات في Gleam أسطر مفردة تسبقها //.

pub fn main() {
  // This is a comment
  let x = 1
}

التعليمات

في هذا التمرين ستكتب بعض الكود لمساعدتك على طهي لازانيا رائعة من كتاب الطهي المفضل لديك.

لديك خمس مهام، كلها متعلقة بالوقت المستغرق في طهي اللازانيا.

1. حدّد وقت الفرن المتوقع بالدقائق

عرّف دالة expected_minutes_in_oven التي لا تأخذ أي وسائط وتُرجع عدد الدقائق التي ينبغي أن تبقى فيها اللازانيا في الفرن. وفقًا لكتاب الطهي، وقت الفرن المتوقع بالدقائق هو 40:

expected_minutes_in_oven()
// -> 40

2. احسب الوقت المتبقي في الفرن بالدقائق

عرّف دالة remaining_minutes_in_oven التي تأخذ عدد الدقائق الفعلية التي قضتها اللازانيا في الفرن كوسيط، وتُرجع عدد الدقائق التي لا يزال يتعين على اللازانيا أن تبقى فيها في الفرن، بناءً على وقت الفرن المتوقع بالدقائق من المهمة السابقة.

remaining_minutes_in_oven(30)
// -> 10

3. احسب وقت التحضير بالدقائق

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

preparation_time_in_minutes(2)
// -> 4

4. احسب إجمالي وقت العمل بالدقائق

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

total_time_in_minutes(3, 10)
// -> 16

5. أنشئ إشعارًا بأن اللازانيا جاهزة

عرّف دالة alarm التي لا تأخذ أي وسائط وتُرجع رسالة تشير إلى أن اللازانيا جاهزة للأكل.

alarm()
// -> "Ding!"
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Gleam Exercism

مستعد لبدء اللازانيا؟

سجّل في Exercism لتتعلّم وتتقن Gleam عبر 33 مفهومًا122 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.