diff options
Diffstat (limited to 'ft_lstmap.c')
| -rw-r--r-- | ft_lstmap.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ft_lstmap.c b/ft_lstmap.c index 7c1a89b..41a7e19 100644 --- a/ft_lstmap.c +++ b/ft_lstmap.c @@ -1,6 +1,17 @@ +#include <stdlib.h> #include "libft.h" -t_list * ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem)) +t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *)) { + t_list *mapped; + t_list *tmp; + while (lst != NULL) + { + tmp = ft_lstnew(lst->content); + tmp->next = lst->next; + tmp = (*f)(tmp); + ft_lstadd_back(&mapped, tmp); + } + return (mapped); } |
