Nosso professor nos pediu para pensar em uma função no OCaml que tem o tipo
'a -> 'b
isto é, uma função de um argumento que pode ser qualquer coisa e que pode retornar algo diferente.
Pensei em usar raise
uma função que ignora seu argumento:
let f x = raise Exit
Mas o professor disse que havia uma solução que não requer nenhuma função na biblioteca padrão. Estou confuso: como você pode fazer um 'b
se não possui um em primeiro lugar?
Estou perguntando aqui, e não no Stack Overflow, porque quero entender o que está acontecendo, não quero apenas ver um programa sem explicação.
raise
funcionaria, portanto sabemos como explicar melhor por que a solução que seu professor está procurando (que funcionará pelos mesmos motivos que raise
funciona) funciona.
raise : exn -> 'a
para que eu possa obter o valor de retorno, eu simplesmente ignoro o argumento.