تمرين - أنماط الدوال
في هذا التمرين، ركز على تطبيق بعض الأنماط الوظيفية التي تعلمتها. أيضا، اعمل على التعليمات البرمجية المكتوبة من قبل زملائك وقم بدمجها مع عامل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.
إنشاء تطبيق
كما ذُكِر في البداية، كان زملاؤك مشغولين بكتابة التعليمات البرمجية. ها هي ذا:
let cards = [21; 3; 1; 7; 9; 23]
let cardFace card =
let no = card % 13
if no = 1 then "Ace"
elif no = 0 then "King"
elif no = 12 then "Queen"
elif no = 11 then "Jack"
else string no
let suit card =
let no = card / 13
if no = 0 then "Hearts"
elif no = 1 then "Spades"
elif no = 2 then "Diamonds"
else "Clubs"
let shuffle list =
let random = System.Random()
list |> List.sortBy (fun x -> random.Next())
let printCard card = printfn "%s of %s" (cardFace card) (suit card)
let printAll list = List.iter(fun x -> printCard(x)) list
let take (no:int) (list) = List.take no list
تتكون التعليمات البرمجية من أجزاء مختلفة تساعدك على تنفيذ لعبة بطاقة. ما هي المهمة إذن؟ مهمتك هي أن تأخذ مجموعة من البطاقات، وتخلط ورق اللعب، وتأخذ البطاقات الثلاثة العلوية ومن ثم تطبع النتائج.
أنشئ مشروعًا جديدًا باستخدام:
dotnet new console --language F# -o Cards cd Cardsاستبدل التعليمة البرمجية في ملف Program.fs بالتعليمة البرمجية التي أدخلتها.
قم بإنشاء البنية الأساسية لبرنامج ربط العمليات التجارية بإضافة السطر التالي في النهاية:
cards |> shuffle |> take 3 |> printAllستستدعي هذه التعليمة البرمجية الدوال
shuffle()، وtake()، وprintAll()في تسلسل من اليسار إلى اليمين. تختلف نتائج الإخراج كما يقدم الأسلوبshuffle()عنصراً عشوائياً.شغل المشروع عن طريق استدعاء
dotnet run.dotnet runيجب أن تشاهد ثلاث بطاقات تُطبع مع وصفها ورموزها الصحيحة. فيما يلي مثال على ما يمكن أن يبدو عليه الإخراج:
Ace of Hearts 9 of Hearts 7 of Hearts
تهانينا! بنيت أنت وفريقك بداية تطبيق لورق اللعب. كما طبقت بنجاح البنية الأساسية لبرنامج ربط العمليات التجارية الذي يجعلك تستدعي دالة في تسلسل، وكل هذا ينطبق على قائمة من بطاقات اللعب.