Наш профессор попросил нас подумать о функции в OCaml, которая имеет тип
'a -> 'b
т.е. функция одного аргумента, которая может быть чем угодно, и которая может возвращать что угодно другое.
Я думал об использовании raiseв функции, которая игнорирует ее аргумент:
let f x = raise Exit
Но профессор сказал, что есть решение, которое не требует каких-либо функций в стандартной библиотеке. Я в замешательстве: как вы можете сделать это, 'bесли у вас его нет вообще?
Я спрашиваю здесь, а не о переполнении стека, потому что я хочу понять, что происходит, я не хочу просто видеть программу без объяснения причин.
raiseбудет работать, поэтому мы знаем, как лучше всего объяснить, почему работает решение, которое ищет ваш профессор (которое будет работать по тем же причинам, что и raiseработает).
raise : exn -> 'aчтобы я мог получить возвращаемое значение, я просто игнорирую аргумент.