Я взял следующий код из http://www.ocaml -tutorial.org / data_types_and_matching
Я пытался написать заглушку C для последующего вызова из нашего PHPкодовая.Я не совсем понимаю, как (и если) я должен создать typedef для следующего выражения типа Ocaml, и как я могу получить доступ к функции multiply_out из заглушки C?
Я новичокдля Ocaml, и мы оцениваем его, чтобы увидеть, будет ли он полезен для нас при создании небольшой грамматики для нашего математического веб-приложения.
type expr = Plus of expr * expr (* means a + b *)
| Minus of expr * expr (* means a - b *)
| Times of expr * expr (* means a * b *)
| Divide of expr * expr (* means a / b *)
| Value of string (* "x", "y", "n", etc. *)
;;
let rec multiply_out e =
match e with
Times (e1, Plus (e2, e3)) ->
Plus (Times (multiply_out e1, multiply_out e2),
Times (multiply_out e1, multiply_out e3))
| Times (Plus (e1, e2), e3) ->
Plus (Times (multiply_out e1, multiply_out e3),
Times (multiply_out e2, multiply_out e3))
| Plus (left, right) -> Plus (multiply_out left, multiply_out right)
| Minus (left, right) -> Minus (multiply_out left, multiply_out right)
| Times (left, right) -> Times (multiply_out left, multiply_out right)
| Divide (left, right) -> Divide (multiply_out left, multiply_out right)
| Value v -> Value v
;;
Любые предложения окажут большую помощь!Спасибо!