aboutsummaryrefslogtreecommitdiff
path: root/ft_lstmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'ft_lstmap.c')
-rw-r--r--ft_lstmap.c13
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);
}