小编Mar*_*ohl的帖子

F#:找不到与此覆盖相对应的抽象属性

你好伙伴Overflowers.我正在开发一个组项目,用于创建绘制3D场景的2D渲染的光线跟踪器.我目前正在进行的任务涉及对象(形状)的矩阵变换,需要移动,镜像,剪切等.

在处理形状时,我们选择实现一个定义命中函数类型的接口.此命中函数在每个形状中定义,例如球体,方框,平面等.当变换形状时,我需要变换撞击形状的光线,并且这样做的方式似乎是具有更高阶函数,改变原始形状命中功能.

为了做到这一点,我已经实现了函数transformHitFunction,它似乎工作,但实现Shape接口的新类型transformedShape给了我错误

未找到与此覆盖对应的抽象属性

这对我没有任何意义,因为它适用于同类型的其他命中功能.谁能发现什么是错的?

我试图剥离与此问题无关的所有模块,命名空间和代码.

type Transformation = Matrix of float [,]

type Vector =
    | V of float * float * float

let mkVector x y z = V(x, y, z)
let vgetX (V(x,_,_)) = x
let vgetY (V(_,y,_)) = y
let vgetZ (V(_,_,z)) = z

type Point =
    | P of float * float * float

let mkPoint x y z = P(x, y, z)
let pgetX (P(x,_,_)) = x
let pgetY (P(_,y,_)) = y
let pgetZ …
Run Code Online (Sandbox Code Playgroud)

f# interface higher-order-functions

2
推荐指数
1
解决办法
352
查看次数

标签 统计

f# ×1

higher-order-functions ×1

interface ×1