Napisać wersję funkcji `mape' (z programu przykładowego listy-pr.c ) która kończy iterację gdy funkcja `fun' zwraca 0. Wykorzystać ją do rozwiązania zadania 9 z listy 1.
Zakładamy że elementy meta-listy (listy list) mają następującą deklarację:
struct ls { struct ls *nastepny; int wartosc;} struct mls { struct mls *nastepny; struct ls *lwartosc;};Obliczyć (stworzyć) listę sum pól wartość poszczególnych list na meta-liście. Podać rozwiązanie bezpośrednie jak i bazujące na `map' lub `mape'.
Spróbować rozwiązać zadania o listach z listy 1 używając do przechodzenia listy funkcji `map' (lub `mape'). W których zadanich są z tym trudności .
Napisać funkcję, która mając daną listę liczb całkowitych i kryterium obliczy sumę liczb spełniających kryterium. Kryterium jest zadane jako wskaźnik do funkcji która bierze jako argument wskaźnik doelementu listy i zwraca 1 jeśli element spełnia kryterium, zaś 0 w przeciwnym razie. Podać rozwiązanie bezpośrednie jak i bazujące na `map' lub `mape'.
Napisać funkcję, która mając dane dwie listy liczb całkowitych równej długości stworzy listę par liczb całkowitych.
Wielomian (jednej zmiennej) można traktować jako listę par '(współczynnik, wykładnik)' (taka para jednoznacznie wyznacza jednomian: zmienną, np. `x' podnosimy do potęgi podanej przez wykładnik i mnożymy przez współczynnik). Przy tej reprezentacji nie trzeba pamiętać wyrazów z zerowymi współczynnikami (np. `x' do potęgi 1000 reprezentujemu listą jednoelementową). Zakładając że współczynniki i wykładniki reprezentujemy liczbami całkowitymi, jak można wykonać dodawanie i mnożenie takich wielomianów. Oszacować ilość operacji potrzebnych do pomnożenia dwu wielomianów jeśli każdy z nich ma co najwyżej `n' niezerowych wyrazów.