0Pricing
Swift Academy · درس

تركيب الدوال وخطوط المعالجة

أنشئوا خطوط معالجة للبيانات بتركيب دوال صغيرة في تحويلات أكبر.

تركيب الدوال وخطوط المعالجة درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

مرحبًا بكم

يجمع تركيب الدوال الدوال الصغيرة المركزة في تحويلات أكبر. وهو جوهر البرمجة الوظيفية — إذ يتيح بناء سلوك معقد من أجزاء بسيطة.

التركيب اليدوي

```swift func double(_ n: Int) -> Int { n * 2 } func addOne(_ n: Int) -> Int { n + 1 } let result = addOne(double(5)) // 11 ```

التركيب باستخدام دالة مساعدة

```swift func compose(_ f: @escaping (B)->C, _ g: @escaping (A)->B) -> (A)->C { { f(g($0)) } } let doubleAndAdd = compose(addOne, double) print(doubleAndAdd(5)) // 11 ```

المعامل المخصص >>>

```swift infixop precedencegroup CompositionPrecedence { ... } func >>> (f: @escaping (A)->B, g: @escaping (B)->C) -> (A)->C { { g(f($0)) } } let pipeline = double >>> addOne >>> String.init print(pipeline(5)) // "11" ```

مسار معالجة مع سلسلة map/filter

```swift let process: ([Int]) -> [String] = { nums in nums.filter { $0 > 3 }.map { String($0 * 2) } } print(process([1,2,3,4,5])) // ["8","10"] ```

النمط الخالي من النقاط

يتجنب النمط الخالي من النقاط تسمية الوسيطات الوسيطة: ```swift let words = ["hello","WORLD","Swift"] let lower = words.map { $0.lowercased() } // named let lower2 = words.map(\.description) // point-free where applicable ```

مسارات المفاتيح بوصفها دوال

يمكن استخدام مسارات المفاتيح في Swift بوصفها دوال: ```swift struct User { var name: String } let users = [User(name:"Alice"),User(name:"Bob")] let names = users.map(\.name) // ["Alice","Bob"] ```

إنشاء خط أنابيب للبيانات

```swift let pipeline: (String) -> Int? = { s in let trimmed = s.trimmingCharacters(in:.whitespaces) guard !trimmed.isEmpty else { return nil } return Int(trimmed) } [" 42 "," ","7"].compactMap(pipeline) // [42,7] ```

التطبيق الجزئي

```swift func add(_ a: Int) -> (Int) -> Int { { a + $0 } } let add5 = add(5) print([1,2,3].map(add5)) // [6,7,8] ```

أهمية التركيب

المزايا: • كل دالة صغيرة وقابلة للاختبار • خطوط الأنابيب سهلة القراءة من الأعلى إلى الأسفل • إعادة الاستخدام: تعمل `double` بمفردها أو ضمن أي خط أنابيب • التنفيذ الكسول: ادمجها مع `.lazy` لتجنب عمليات التخصيص الوسيطة

تحقق سريع

ما ميزة Swift التي تتيح استخدام مسارات المفاتيح مباشرةً بوصفها دوال تحويل في `map`؟

مراجعة

أهم النقاط: • تركيب الدوال الصغيرة في تحويلات أكبر • استخدام `>>>` أو التركيب اليدوي لإنشاء خطوط أنابيب قابلة لإعادة الاستخدام • استخدام مسارات المفاتيح بوصفها دوال لاستخراج الخصائص بطريقة واضحة • ينشئ التطبيق الجزئي دوال متخصصة • الدمج مع `.lazy` لإنشاء خطوط أنابيب دون نسخ التالي: المتتاليات الكسولة.

الأسئلة الشائعة

هل درس «تركيب الدوال وخطوط المعالجة» مجاني؟

نعم — نص درس «تركيب الدوال وخطوط المعالجة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «تركيب الدوال وخطوط المعالجة»؟

أنشئوا خطوط معالجة للبيانات بتركيب دوال صغيرة في تحويلات أكبر. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «تركيب الدوال وخطوط المعالجة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الدوال النقية والتصميم الخالي من الآثار الجانبية
  2. الدوال عالية الرتبة: ‏map وflatMap وcompactMap
  3. تركيب الدوال وخطوط المعالجة
  4. التسلسلات الكسولة للكفاءة
← العودة إلى Swift Academy