إذا أُعطيت سلسلة نصية تمثّل مصفوفة من الأعداد، فأرجِع صفوف تلك المصفوفة وأعمدتها.
إذن، إذا أُعطيت سلسلة نصية مضمَّن فيها أسطر جديدة مثل:
9 8 7
5 3 2
6 6 7
وهي تمثّل هذه المصفوفة:
1 2 3
|---------
1 | 9 8 7
2 | 5 3 2
3 | 6 6 7
فينبغي أن يكون الكود الخاص بك قادرًا على إنتاج ما يلي:
صفوف مصفوفتنا في المثال:
وأعمدتها:
لإكمال هذا التمرين، تحتاج إلى إنشاء نوع البيانات Matrix مع تعريف نسختَي Eq وShow، ثم تنفيذ الدوال التالية:
colscolumnflattenfromListfromStringreshaperowrowsshapetransposeستجد إعلان بيانات وهميًا وتوقيعات الأنواع موضوعة بالفعل، لكن الأمر متروك لك لتعريف الدوال وإنشاء نوع بيانات ذي معنى، أو newtype، أو مرادف نوع.
لا يُشترط التحقق من صحة المُدخلات. دَعه يفشل إذا لم تكن المصفوفة مستطيلة، أو وُجدت محارف غير صالحة، وما إلى ذلك.
shape هي (rows, cols)
سجّل في Exercism لتتعلّم وتتقن Haskell عبر 107 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.