O que essa assinatura de função significa em sml?
Estou olhando algumas anotações que meu professor deu sobre a linguagem SML e uma das funções é assim:
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
Alguém poderia ajudar a explicar o que isso está fazendo? O que mais me confunde é a linha:
let fun lp curr [] = curr
O que exatamente isso significa? Tanto quanto eu posso dizer, existe uma função chamadalp
mas o que ocurr []
significar? São esses argumentos? Se sim, você só não tem permissão para um parâmetro em sml?