۲۰ - ۱پیمایشی

با ‏‎Functor‎‏ میشه مقادیرِ داخلِ یه ساختار رو تغییر داد. با ‏‎Applicative‎‏ میشه هر مقداری داخل یه ساختار رو با تابعی که خودش هم داخل یه ساختار هست، تغییر داد. با ‏‎Foldable‎‏ هم میشه مقادیر داخل یه ساختار رو طوری پردازش کرد که انگار در یه ترتیب تسلسلی قرار دارن، مشابه چیزهایی که از فولد ِ لیست‌ها دیدیم.

‏‎Traversable‎‏ هم در همون مقاله‌ی ‏‎Applicative‎‏ معرفی شد و تا GHC 7.10 هم وارد ‏‎Prelude‎‏ نشد. اما قبل از اون در کتابخونه ِ ‏‎base‎‏ قابل دسترس بود. ‏‎Traversable‎‏ وابسته به ‏‎Applicative‎‏، و متعاقباً ‏‎Functor‎‏ ِه، و ‏‎Foldable‎‏ هم سوپرکلاس ِشه.

با ‏‎Traversable‎‏ میشه المان‌های داخل ساختار رو، مشابه یه فانکتور، به مقادیر اپلیکتیو تغییر داد، و نهایتاً ساختار(های) اپلیکتیو رو به بیرون از ساختار ِ پیمایشی لیفت کرد. یه توصیف رایج برای ‏‎Traversable‎‏، اون رو به راهی برای پیمایش ِ یه ساختارِ داده، نگاشت ِ یه تابع داخلِ اون ساختار و جمع‌آوری ِ بافت‌های اپلیکتیو در طولِ مسیر تعریف می‌کنه. احتمالاً با مثال راحت‌تر مشخص میشه.

در این فصل:

  • تایپکلاسِ ‏‎Traversable‎‏، و تابع‌های کانونیک ِش رو توضیح میدیم؛

  • مثال‌های عملی از ‏‎Traversable‎‏ رو می‌بینیم؛

  • به کمک این تایپکلاس بعضی کُدها رو تمیزتر می‌کنیم؛

  • و البته چندتا نمونه ِ ‏‎Traversable‎‏ می‌نویسیم.