获取“未绑定记录字段mid_x”

问题描述 投票:0回答:1

我不明白为什么在运行此代码时收到此错误:“Unbound record field mid_x”。函数

midpoint_segment
os 试图做的是找到给定类型段的中点并返回点类型。

type point = 
  {x : float; y : float} 

type segment = 
  {startp : point; endp : point}

let midpoint_segment {startp; endp} =
    let mid_x = (startp.x +. endp.x) /. 2.0 in
    let mid_y = (startp.y +. endp.y) /. 2.0 in
      {mid_x; mid_y}

这个错误是什么意思?我用“let”定义 mid_x 和 mix_y

syntax ocaml record
1个回答
0
投票

{mid_x; mid_y}
是记录文字
{mid_x = mid_x; mid_y = mid_y}
的语法糖。

如果要创建

point
类型的记录,您需要显式指定记录字段标签:
{x = mid_x; y = mid_y}
或者,要使用字段双关语,请将
mix_d
mid_y
重命名为
x
y
为了做到
{x; y}

或者,如果您想创建一个元组,语法为

(mid_x, mid_y)

© www.soinside.com 2019 - 2024. All rights reserved.