OCaml предварительная декларация - PullRequest
5 голосов
/ 12 июня 2010

Есть ли способ сделать прямое объявление в стиле C в OCaml?

Моя проблема в том, что у меня есть два варианта, которые взаимно ссылаются друг на друга:

type path_formula =
  [ `Next of state_formula
  | `Until of (state_formula * state_formula)
  | `UntilB of (state_formula * int * state_formula)  
  ]

type state_formula = 
    [ `True | `False
    | `Not of state_formula
    | `And of (state_formula * state_formula)
    | `Or of (state_formula * state_formula)
    | `Imply of (state_formula * state_formula)
    | `Label of string
    | `Prob` of (boundf * path_formula)
    | `Expc` of (boundi * formula)
    ]

Так что обатип должен знать другой .. Я искал его в Google, но, к сожалению, OCaml не так широко используется язык программирования ..

1 Ответ

14 голосов
/ 12 июня 2010

Используйте

type T1 = ...
and T2 = ...

иметь рекурсивные типы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...