map
تُستخدم map في Scheme لتطبيق إجراء على كل عنصر في قائمة (أو قوائم متعددة) وإرجاع قائمة جديدة بالنتائج. هذا يجعلها مثالية لتحويل البيانات.
أبسط شكل لـ map:
(map procedure list)- procedure: دالة تُطبَّق على كل عنصر في القائمة.
- list: القائمة التي تُحوَّل عناصرها.
مثال: مضاعفة كل عنصر
(define (double x)
(* x 2))
(map double (list 1 2 3 4))- هنا، تُطبَّق
doubleعلى كل عنصر في(1 2 3 4). - النتيجة قائمة جديدة بمضاعفة كل عنصر.
الإخراج: (2 4 6 8)
كيف يعمل
إنشاء قائمة جديدة:
mapيطبّق الإجراء على كل عنصر ويجمع النتائج في قائمة جديدة.
تحويل البيانات:
- يُستخدم أساسًا للتحويلات لا لتنفيذ الآثار الجانبية.
مثال: الاستخدام مع قوائم متعددة
إذا وُفّرت قوائم متعددة، يعالج map العناصر المقابلة من كل قائمة.
(define (sum x y)
(+ x y))
(map sum (list 1 2 3) (list 4 5 6))sumتجمع العناصر المقابلة من القائمتين وتُرجع النتائج كقائمة جديدة.
الإخراج: (5 7 9)
ملخص
mapأداة قوية لتحويل القوائم بتطبيق إجراء على كل عنصر.- على عكس
for-each،mapيُنتج قائمة جديدة بنتائج تطبيق الإجراء. - يدعم قوائم متعددة، ما يتيح عمليات عنصر-بعنصر عبرها.
باستخدام map، يمكنك إنشاء نسخ محوّلة من بياناتك بكفاءة مع الإبقاء على القوائم الأصلية دون تغيير.