¿Qué significa esta firma de función en sml?
Estoy revisando algunas notas que mi profesor dio sobre el lenguaje SML y una de las funciones es la siguiente:
fun max gt =
let fun lp curr [] = curr
| lp curr (a::l) = if gt(a,curr)
then lp a l
else lp curr l
in
lp
end
¿Podría alguien ayudar a explicar lo que está haciendo esto? Lo que más me confunde es la línea:
let fun lp curr [] = curr
¿Qué significa esto exactamente? Por lo que sé, hay una función llamadalp
pero que hace elcurr []
¿media? Son estos argumentos? Si es así, ¿no está permitido solo un parámetro en sml?