F#:不确定如何开始

时间:2015-09-20 20:11:21

标签: f#

需要帮助,

  1. 编写一个函数,它接受2个StraightLine并将交叉点作为元组(x,y)返回。如果没有解决办法,则应使用“例外”

  2. 在分配“1”中更改解决方案,因此如果没有解决方案,则需要使用“无”选项,而不是使用“异常”。如果有解决方案,请使用Some(x,y)表达式。

  3. 再次解决赋值“1”,但定义带括号a和b的记录类型的线代表一条线。 y=3x+4例如用括号{a=3.0; b=4.0}表示。

1 个答案:

答案 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

其他人自己做。不起作用 - 显示尝试解决方案