мое назначение (я написал это объяснение после вопроса и лучший ответ): я хотел вызвать каждый отдельный токен для функции в функции char со строкой чтения. Итак, я просто хотел сделать, это функция цикла, которая вызывает каждую другую функцию, которая управляет символом.
Я новичок в OCaml. Я пытаюсь вызвать функцию из анонимной функции. Но произошла ошибка при вызове функции в анонимной функции с ключевым словом function. Понятия не имею. Как заставить это работать в OCaml?
Вот код ошибки.
This expression has type unit but an expression was expected of type unit -> bool
Вот мой код noob с размещением ошибки, подчеркнутой ^^^.
let parseS () =
false
let parseZ () =
false
type parenType = Open_paren | Close_paren
let parseParen = function
| (Open_paren) -> ()
| (Close_paren) -> ()
let read_input (str:string) () =
let len = String.length str in
let i = 0 in
let rec read_token = function
| (current, chr) when current >= len -> parseZ
| (current, chr) when chr = 'S' -> parseS
| (current, chr) when chr = 'Z' -> parseZ
| (current, chr) when chr = '(' -> parseParen Open_paren
^^^^^^^^^^
| (current, chr) when chr = ')' -> parseParen Close_paren
^^^^^^^^^^
| _ -> raise @@ Invalid_argument "Error cause with token "
in
read_token (i + 1, str . [i + 1]) ;;