عملیات پایهای لیست را پیادهسازی کنید.
در زبانهای تابعی، عملیات لیست مانند length، map و reduce بسیار رایجاند. مجموعهای از عملیات پایهای لیست را بدون استفاده از توابع موجود پیادهسازی کنید.
تعداد و نام دقیق عملیاتی که باید پیادهسازی شوند بسته به track است تا با نامهای موجود تداخل نکنند، اما عملیات کلی که پیادهسازی میکنید عبارتاند از:
append (با گرفتن دو لیست، همهی عناصر لیست دوم را به انتهای لیست اول اضافه میکند)؛concatenate (با گرفتن چندین لیست، همهی عناصر همهی لیستها را در یک لیست مسطح ترکیب میکند)؛filter (با گرفتن یک «محمول» و یک لیست، لیست همهی عناصری را برمیگرداند که predicate(item) برایشان «درست» است)؛length (با گرفتن یک لیست، تعداد کل عناصر آن را برمیگرداند)؛map (با گرفتن یک تابع و یک لیست، لیست نتایج اعمال function(item) روی همهی عناصر را برمیگرداند)؛foldl (با گرفتن یک تابع، یک لیست و «انباشتگر» اولیه، هر عنصر را از سمت چپ در انباشتگر تا میکند (کاهش میدهد))؛foldr (با گرفتن یک تابع، یک لیست و «انباشتگر» اولیه، هر عنصر را از سمت راست در انباشتگر تا میکند (کاهش میدهد))؛reverse (با گرفتن یک لیست، لیستی برمیگرداند که همهی عناصر اصلی را دارد، اما با ترتیب معکوس).توجه کنید که ترتیبی که آرگومانها به توابع تا (foldl، foldr) داده میشوند اهمیت دارد.
در Exercism ثبتنام کنید تا Factor را همراه با 47 مفهوم163 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.
از مقدمهای عملی بر بازگشت لذت ببرید، جایگزینهای دستوری و تابعی «عملیات لیست» را بررسی کنید و به بازگشت دنبالهای و توابع انباره عمیق شوید.