我不明白为什么在运行此代码时收到此错误:“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
{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)
。