في البرمجة الحتمية، عادة ما يكون لدينا كود يبدو على النحو التالي:
func addOneToSlice(xs []int) []int { rs := make([]int, len(xs)) for i, value := range xs { rs[i] = value 1 } return rs }
ومع ذلك، لاحظ ما يلي حول حلقة for:
قارن كيف سيتم تنفيذ نفس المهمة في F#:
let rec addOneToList = function | [] -> [] | x :: xs -> x 1 :: addOneToList xs
الآن خذ بعين الاعتبار ما يلي:
نظرًا لهذه القيود، فإن إضافة 1 إلى أي عنصر y ليس على رأس القائمة من شأنه أن يغير بنية وظيفتنا بشكل كبير.
الآن قارن بين كيفية تقدم الحساب في كلا الأسلوبين:
في الأسلوب الوظيفي، يؤدي الجمع بين كلا النطاقين والتقدم الحسابي إلى النتائج التالية:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3