In Schema kann ich eine Funktion schreiben:Kann ich eine OCaml-Funktion definieren, die sich selbst zurückgibt?
(define (eat-line line)
eat-line)
Was ich in einer Schleife wie verwenden:
(define (loop op)
(let ((line (read-line))
(loop (op line))))
In OCaml habe ich versucht, eine Funktion zu definieren:
let rec eat_line line = eat_line
Aber ich habe den Fehler:
Error: This expression has type 'a -> 'b
but an expression was expected of type 'b
The type variable 'b occurs inside 'a -> 'b
Ist es möglich, eine solche Funktion in OCaml zu definieren, oder wird sie vom Typsystem verhindert? Wenn ja warum?
Danke für die erstaunlich schnelle Antwort! –
Für die Leser: Dies wurde vor 15 Jahren diskutiert: http://caml.inria.fr/pub/old_caml_site/caml-list/2040.html –