Quería tener una versión recursiva de List.map
, así que escribí la mía. Aquí está:El argumento opcional no se puede borrar?
let rec list_map f l ?(accum=[])=
match l with
head :: tail -> list_map f tail ~accum:(head :: accum)
| [] -> accum;;
Siempre que puedo compilar esta función, me sale:
File "main.ml", line 69, characters 29-31:
Warning X: this optional argument cannot be erased.
El tutorial dice que esto significa que estoy tratando de crear una función sin argumentos no opcionales. Pero la función anterior claramente toma argumentos no opcionales.
Probablemente estoy haciendo algo realmente tonto, pero ¿qué?
debería echar un vistazo a las publicaciones recientes en la lista de correo ocaml sobre mapas recursivos de cola. http://groups.google.com/group/fa.caml/browse_thread/thread/8b2a70a767e6a433 – nlucaroni