Hay dos soluciones principales en OCaml:
Jacques Garrigue ya se implementó un sintácticamente-luz, pero el enfoque ineficaz para muchas estructuras de datos hace varios años. Simplemente envuelve las colecciones en objetos que proporcionan un método map
. Luego puede hacer collection#map
para usar la función de mapa para cualquier tipo de colección. Esto es más general que sus requisitos porque permite sustituir diferentes tipos de estructuras de datos en tiempo de ejecución. Sin embargo, esto no es muy útil en la práctica, por lo que el enfoque nunca fue ampliamente adoptado.
Una solución sintácticamente más pesada pero eficiente, robusta y estática es usar funtores para parametrizar su código sobre la estructura de datos que está utilizando. Esto hace que sea trivial reutilizar su código con diferentes estructuras de datos. Consulte las traducciones de OCaml de Markus Mottl del libro de Okasaki "Estructuras de datos puramente funcionales" para ver algunos ejemplos excelentes.
Si no busca ese tipo de poder y sólo quiere brevedad entonces, por supuesto, sólo puede crear un alias de módulo con un nombre más corto (por ejemplo, el módulo S = cadena de caracteres).
Entonces, ¿qué hay de malo con tener que buscar la documentación y usar la función apropiada? –