Я изучаю OCaml прямо сейчас, и после того, как я это делаю,OCaml ошибка: "тип вариант не имеет конструктора ::"
type aexp =
| Const of int
| Var of string
| Power of string * int
| Times of aexp list
| Sum of aexp list
let rec diff : aexp * string -> aexp
=fun (aexp,x) -> match aexp with
|Const a -> Const 0
|Var "x" -> Const 1
|Power ("x", a) -> (match a with
|2 -> Times[Const 2; Var "x"]
|1 -> Const 1
|0 -> Const 0
|_ -> Times[Const a; Power ("x", a-1)])
|Times [l] -> (match l with
|h::t -> (match t with
|Var "x" -> h
|Power ("x",a) -> Times [Times [h;Const a];diff(Power ("x",a),x)]))
Я получаю сообщение об ошибке:
File "", line 11, characters 3-5:
Error: The variant type aexp has no constructor ::
I узнал, что :: является конкатенацией одного элемента в список или другой элемент списка.
Он работал с другими моими кодами, которые использовали список.
Почему здесь не работает?
Привет, ТНХ для ответа. Он решил сообщить об ошибке, но теперь появляются другие сообщения об ошибках. Я попрошу еще раз в другом вопросе. –