סיכום – בונה צינורות עיבוד
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Swift של Coddy. שיעור 43 מתוך 56.
אתגר
בינוניבנו צינור נתונים קטן שמבוסס על סגירות.
קראו שלוש שורות:
- מספר שלם
min - מספר שלם
scale - רשימה של מספרים שלמים המופרדים בפסיקים
הגדירו שתי פונקציות שיוצרות סגירות:
makeFilter(min: Int) -> (Int) -> Boolלוכדת אתminומחזירה תנאיn > minmakeScaler(by: Int) -> (Int) -> Intלוכדת אתbyומחזירה פונקציה שמכפילה בו
לאחר מכן הגדירו פונקציה pipeline(_ nums: [Int], filter: (Int) -> Bool, transform: (Int) -> Int) -> [Int] שמסננת תחילה ואז מבצעת טרנספורמציה.
הדפיסו שלוש שורות:
- המספרים שעברו את הסינון, כשהם מופרדים באמצעות
, - אותם מספרים לאחר הכפלה בקנה המידה, כשהם מופרדים באמצעות
, - סכום הערכים לאחר ההכפלה
עבור הקלט 5 / 3 / 2,7,3,8,9, הפלט הוא:
7,8,9
21,24,27
72נסו בעצמכם
let minVal = Int(readLine()!)!
let scale = Int(readLine()!)!
let nums = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: לכתוב makeFilter / makeScaler שמחזירות סגירות; pipeline(_:filter:transform:);
// לאחר מכן להדפיס את הערכים שסוננו, את הערכים שהוכפלו ב-scale ואת סכומם
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
5פונקציות מסדר גבוה חלק 1
מיפוי (Map)סינון (Filter)צמצום (Reduce)שרשור map, filter ו-reduceסיכום – סטטיסטיקות מילים8סגירות
יסודות הסגירותסגירות נגררותלכידת ערכיםהחזרת סגירותפונקציות מסדר גבוה מותאמות אישיתסיכום – בונה צינורות עיבודתרגלו בעצמכם: Swift אונליין