OCaml:记录中的字段是否未定义?

Nic*_*ner 4 ocaml record

我有这种记录类型:

type syllable = {onset: consonant list; nucleus: vowel list; coda: consonant list};;
Run Code Online (Sandbox Code Playgroud)

如果我想要实例化只有核被定义的音节怎么办?我可以给它一个默认值吗?是默认为[]还是类似的东西?

zrr*_*zrr 6

只是为了让newacct的答案更加清晰,这是一个例子

let default_syllable = { onset = []; nucleus = []; coda = [] }

let choose_only_nucleus nucleus =
   { default_syllable with nucleus = nucleus }
Run Code Online (Sandbox Code Playgroud)


Mic*_*ael 1

我认为使用“可选”字段是一个更好的主意。

type syllable = {onset: consonant list option; nucleus: vowel list option; coda: consonant list option};;
Run Code Online (Sandbox Code Playgroud)

这样,您就可以定义您需要的内容。

{onset = Some [consonant, consonant, ...],
 nucleus = None,
 coda = Some [consonant, consonant, consonant, ...]}
Run Code Online (Sandbox Code Playgroud)

认为这就是语法。