Я не совсем уверен, но думаю, вы спрашиваете, как получить доступ к компоненту составного значения.Для кортежей и вариантов это можно сделать путем сопоставления с образцом.Таким образом, вы имеете это право.Вам просто нужно сделать свой рисунок немного глубже.Чтобы получить "x"
из вашего значения x
, вы должны сделать что-то вроде этого:
let extracted_value =
match x with
| Dim (k, _) -> k
in
. . .
Поскольку в вашем типе stmt
(по крайней мере, прямо сейчас) есть только один конструктор, вы можете сделатьэто без совпадения выглядит следующим образом:
let Dim (extracted_value, _) = x in
. . .
Это работает, потому что существует один шаблон, который является исчерпывающим.Для типов с большим количеством конструкторов вам нужно использовать match
для обработки всех возможностей.
Если это не то, о чем вы спрашиваете, возможно, попробуйте задать вопрос еще раз.
Обновление
Чтобы напечатать строку, вы можете написать что-то вроде этого:
let Dim (k, _) = x in print_string k