需要帮助,
编写一个函数,它接受2个StraightLine并将交叉点作为元组(x,y)
返回。如果没有解决办法,则应使用“例外”
在分配“1”中更改解决方案,因此如果没有解决方案,则需要使用“无”选项,而不是使用“异常”。如果有解决方案,请使用Some(x,y)
表达式。
再次解决赋值“1”,但定义带括号a和b的记录类型的线代表一条线。 y=3x+4
例如用括号{a=3.0; b=4.0}
表示。
答案 0 :(得分:0)
3
type Line = {a:double; b:double}
let LinesIntersection x y =
if x.a <> y.a then
Some ((x.b - y.b)/(y.a - x.a), (y.a*x.b - x.a*y.b)/(y.a - x.a))
else None
let l1 = {a = 2.0; b = -3.0}
let l2 = {a = -3.0; b = 2.0}
let l3 = {a = 2.0; b = 4.0}
LinesIntersection l1 l2 |> printfn "%A"
LinesIntersection l1 l3 |> printfn "%A"
打印:
Some (1.0, -1.0)
<null>
链接:https://dotnetfiddle.net/uNcTEL
其他人自己做。不起作用 - 显示尝试解决方案