1 Taha Khaled2 نشر 7 فبراير أرسل تقرير نشر 7 فبراير شرح Higher-Order Functions في للغات البرمجه ، الدالة عالية المستوي (Higher-order function) هي دالة تأخذ إما دالة واحدة أو أكثر كمعاملات، أو تقوم بإرجاع دالة كنتيجة لها. بشكل أساسي، تعمل الدالة عالية المستوي على الدوال الأخرى، سواءً بتطبيقها لأداء مهام معينة أو بإنشاء دوال جديدة تتصف بسلوك مخصص. تعتبر الدوال عالية الرتبة مفهومًا قويًا في للغات البرمجه وبرمجة الدوال، حيث تمكن من كتابة كود أكثر اختصارًا، وتجزئة الكود إلى وحدات صغيرة قابلة لإعادة الاستخدام، والتعبير بشكل أفضل عن الأفكار والمنطق في البرنامج. خصائص Higher-Order Functions 1. Function as an Argument (الدالة كمعامل): في بعض الأحيان، يمكن للدوال أن تأخذ دوالًا أخرى كمعاملات. يُشار إليها في كثير من الأحيان باسم "دوال الرد الفعلية" (callback functions). يتم استخدام هذه الدوال الفعلية لمهام مثل معالجة البيانات، أو تصفية البيانات، أو التعامل مع الأحداث (events). 2. Function as a Return Value (الدالة كقيمة مُرجعة): يمكن للدوال عالية الرتبة أن تُرجع دوالًا أخرى، مما يسمح بإنشاء دوال متخصصة مُصممة خصيصًا لمهام محددة. 3. Abstraction (التجريد): تقوم الدوال عالية الرتبة بتجريد النماذج والعمليات الشائعة، مما يعزز إعادة استخدام الكود والتجزئة إلى وحدات صغيرة قابلة لإعادة الاستخدام والتعامل معها بشكل منفصل. 4. Composition (التركيب): يمكن توصيل عدة دوال عالية المستوي لإنشاء تحويلات بيانات معقدة أو لمعالجة البيانات. امثله علي Higher-Order Functions map Higher-Order Function # مثال على دالة map لتضاعف كل عنصر في القائمة numbers = [1, 2, 3, 4, 5] doubled_numbers = list(map(lambda x: x * 2, numbers)) print(doubled_numbers) # Output: [2, 4, 6, 8, 10] filter Higher-Order Function # مثال على دالة filter لاختيار الأعداد الزوجية من القائمة numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # Output: [2, 4, 6, 8, 10] sorted Higher-Order Function # مثال على دالة sorted لترتيب الأسماء ترتيبا أبجديا names = ["Alice", "Bob", "Charlie", "David", "Eve"] sorted_names = sorted(names) print(sorted_names) # Output: ['Alice', 'Bob', 'Charlie', 'David', 'Eve'] اقتباس
0 Hossam Mohamed15 نشر 7 فبراير أرسل تقرير نشر 7 فبراير (معدل) مصطلح يطلق على دوال تاخذ دوال أخرى كمعاملات parameters او ترجعها كقيمة // دالة تأخذ دالة أخرى كمعامل function operate(func, x, y) { return func(x, y); } function add(x, y) { return x + y; } const resultAdd = operate(add, 3, 4); // Adds 3 and 4 // دالة ترجع دالة أخرى كقيمة function multiplier(factor) { return function (number) { return number * factor; }; } const double = multiplier(2); const resultDouble = double(5); //return 10 تم التعديل في 7 فبراير بواسطة Hossam Mohamed15 1 اقتباس
0 Khaled Osama3 نشر 7 فبراير أرسل تقرير نشر 7 فبراير سوف اقوم بشرحها لك عن طريق مثال: تخيل أن الدوال هي مثل الأدوات في علبة أدوات البرمجة. لكن في حالة الدوال ذات النظام العالي، يمكنك أن تتعامل مع هذه الأدوات بطريقة أكثر مرونة وقوة. بدلاً من أن تكون مقيدًا بطريقة معينة لاستخدام الأدوات، يمكنك استخدام هذه الأدوات لبناء أدوات أخرى أو حتى تمريرها إلى أدوات أخرى لتفعيل مهام معينة. لنفهم ذلك بمثال بسيط. لنفترض أن لديك دالة تُسمى "ضرب_في_اثنين" تأخذ عددًا وتضربه في 2 وترجع الناتج. في البرمجة التقليدية، ستبدو الدالة بهذا الشكل: def multiply_by_two(number): return number * 2 def apply_operation(number, operation): # هذه هى high oreder function return operation(number) result = apply_operation(5, multiply_by_two) print(result) #الناتج سيكون 10 هنا ايضا تم تمرير الدالة multiply_by_two كمدخل لدالة apply_operation، والتي قامت بتنفيذ الضرب على الرقم 5. 1 اقتباس
0 Mustafa Mahmoud7 نشر 7 فبراير أرسل تقرير نشر 7 فبراير (معدل) بالاضافة لتعليقات الأصدقاء ال higher order function هى الfunction التى تأخذ function أخري أو أكثر كمعاملات لها أو ترجع function function greaterThan(n) { return m => m > n; } let greaterThan10 = greaterThan(10); console.log(greaterThan10(11)); // → true ويوجد functions في الجافسكربت هى higher order function جاهزة لحل مشكلات متكررة مثل ال 1 - ()map // جمع 10 على كل عنصر فى المصفوفة const arr = [1, 2, 3, 4, 5]; const output = arr.map((num) => num += 10) console.log(arr); // [1, 2, 3, 4, 5] console.log(output); // [11, 12, 13, 14, 15] 2 - ()filter const users = [ {firstName: 'John', lastName: 'Doe', age: 25}, {firstName: 'Jane', lastName: 'Doe', age: 30}, {firstName: 'Jack', lastName: 'Doe', age: 35}, {firstName: 'Jill', lastName: 'Doe', age: 40}, {firstName: 'Joe', lastName: 'Doe', age: 45}, ] // ايجاد المستخدمين أعمارهم فوق 30 const output = users.filter(({age}) => age > 30) console.log(output); // [{firstName: 'Jack', lastName: 'Doe', age: 35}, {firstName: 'Jill', lastName: 'Doe', age: 40}, {firstName: 'Joe', lastName: 'Doe', age: 45}] تم التعديل في 7 فبراير بواسطة Mustafa Mahmoud7 1 اقتباس
السؤال
Essam Abdelrahman
ايه المقصود من higher order function
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.