sisoputnfrba / so-commons-library

TADs de uso comun en aplicaciones desarrolladas en C
http://sisoputnfrba.github.io/so-commons-library/
GNU General Public License v3.0
106 stars 174 forks source link

Feature Request: List sorting #99

Closed tferraro closed 6 years ago

tferraro commented 6 years ago

Podríamos tener un list_t * list_sort(t_list*, int (*sorter)(void*)), que nos devuelva la lista ordenada según un criterio, como lo ven?

gastonprieto commented 6 years ago

Vos decís porque la que está tiene efecto?

tferraro commented 6 years ago

Claro, como para que pegue con las de map y filter.

Lo veo como algo distante igual, tenemos otras cosas mas copadas para implementar 😛 El El lun, 23 abr. 2018 a las 08:31, Gaston Prieto notifications@github.com escribió:

Vos decís porque la que está tiene efecto?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sisoputnfrba/so-commons-library/issues/99#issuecomment-383543862, or mute the thread https://github.com/notifications/unsubscribe-auth/AGx_i147lrnhOZY1kx-pvpqVKb878ExPks5trbungaJpZM4Ted8G .

mgarciaisaia commented 6 years ago

Si la única diferencia es el efecto, ¿no tenemos un list_duplicate y lo implementamos en tres líneas?

tferraro commented 6 years ago

No lo veo el list_duplicate, creo que no lo tenemos. El El lun, 23 abr. 2018 a las 09:47, Matias Garcia Isaia < notifications@github.com> escribió:

Si la única diferencia es el efecto, ¿no tenemos un list_duplicate y lo implementamos en tres líneas?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sisoputnfrba/so-commons-library/issues/99#issuecomment-383562571, or mute the thread https://github.com/notifications/unsubscribe-auth/AGx_i58mKCgk9Vy1a4bsuEwSuFN-SHCrks5trc1SgaJpZM4Ted8G .

gastonprieto commented 6 years ago

Algo así? son 4, pero bueno...

t_list* new_list = list_create();
list_add_all(new_list, old_list);
list_sort(new_list, comparer);
return new_list;
tferraro commented 6 years ago

Exactamente 😁

Si lo ven positivo después le armo un par de test que peguen contra esto

gastonprieto commented 6 years ago

dale! solo te va a quedar la parte mas dificil, ponerles nombre :P

tferraro commented 6 years ago

list_inmmutable_sort (?) El El mar, 24 abr. 2018 a las 18:09, Gaston Prieto notifications@github.com escribió:

dale! solo te va a quedar la parte mas dificil, ponerles nombre :P

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sisoputnfrba/so-commons-library/issues/99#issuecomment-384080788, or mute the thread https://github.com/notifications/unsubscribe-auth/AGx_iw3dLUdCBO5-3IPNOdIiWK_6iVWdks5tr5R2gaJpZM4Ted8G .

mgarciaisaia commented 6 years ago

Creemos list_duplicate que haga create + add_all, y usemos eso como base para list_sorted que crea una nueva lista pero reordenada.

Entonces list_sort queda imperativo (ordenar), mientras que list_sorted es pedir "una lista, pero ordenada así".

tferraro commented 6 years ago

+1. Compro El El mar, 24 abr. 2018 a las 19:37, Matias Garcia Isaia < notifications@github.com> escribió:

Creemos list_duplicate que haga create + add_all, y usemos eso como base para list_sorted que crea una nueva lista pero reordenada.

Entonces list_sort queda imperativo (ordenar), mientras que list_sorted es pedir "una lista, pero ordenada así".

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sisoputnfrba/so-commons-library/issues/99#issuecomment-384101820, or mute the thread https://github.com/notifications/unsubscribe-auth/AGx_i66B9EsIo4135E0WyxxAr0rztaWWks5tr6kngaJpZM4Ted8G .

mgarciaisaia commented 6 years ago

Ojo que este issue era para un sorted, no para duplicated. Sigue abierto el issue.

tferraro commented 6 years ago

Me lo comí y le mandé un "Resolves" sin darme cuenta. Igual mandé un PR con el sorted :wink:

NiceCatch

gastonprieto commented 6 years ago

Listo, estan las dos cosas en master.