Nasz profesor poprosił nas o przemyślenie funkcji w OCaml, która ma ten typ
'a -> 'b
tj. funkcja jednego argumentu, który może być czymkolwiek, i który może zwrócić coś innego.
Myślałem o użyciu raise
funkcji, która ignoruje jej argument:
let f x = raise Exit
Ale profesor powiedział, że istnieje rozwiązanie, które nie wymaga żadnej funkcji w standardowej bibliotece. Jestem zdezorientowany: jak możesz to zrobić, 'b
jeśli go nie masz?
Pytam tutaj, a nie na temat Przepełnienia stosu, ponieważ chcę zrozumieć, co się dzieje, nie chcę po prostu zobaczyć programu bez wyjaśnienia.
raise
to zadziała, więc wiemy, jak najlepiej wyjaśnić, dlaczego rozwiązanie, którego szuka twój profesor (które zadziała z tych samych powodów, które raise
działa) działa.
raise : exn -> 'a
więc mogę uzyskać wartość zwracaną, po prostu zignoruję argument.