F#:不确定如何启动 [已关闭]

F# : not sure how to start [closed]

提问人:Fsharper91 提问时间:9/21/2015 最后编辑:INDRAJITH EKANAYAKEFsharper91 更新时间:4/2/2019 访问量:315

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答这个问题。

8年前关闭。

需要这方面的帮助,

  1. 编写一个函数,该函数采用 2 个直线并将相交点作为元组返回。如果没有解决方案,则应使用“例外”(x,y)

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

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

f#

评论

13赞 Anders 9/21/2015
这不是编码服务。我们不是来帮你做功课的。试着自己解决它,如果你遇到困难,如果你仍然无法解决它,请谷歌谷歌,回来问一个关于你遇到的特定问题的具体问题。

答:

0赞 FoggyFinder 9/21/2015 #1

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

剩下的就自己做吧。不起作用 - 显示尝试解决方案

评论

3赞 John Palmer 9/21/2015
@Fsharper91 - 在你问另一个家庭作业问题之前,请阅读这个:meta.stackexchange.com/questions/10811/...