http://www.ocaml-tutorial.org/data_types_and_matchingから次のコードを取得しました
PHPコードベースから呼び出すために、次のCスタブを作成しようとしています。次の Ocaml 型 expr の typedef を作成する方法 (および場合) と、C スタブから関数multiply_out にアクセスする方法がよくわかりません。
私は Ocaml の初心者で、数学 Web アプリの小さな文法を作成するのに役立つかどうかを評価しています。
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
;;
どんな提案でも大きな助けになります!ありがとう!