7
let distance (x:(float * float)): float =
sqrt ((fst x * fst x) + (snd x * snd x))
let getClosestPair (pairs:(float * float) list) =
let mutable closest = (0.0, 0.0)
if List.isEmpty pairs then
(infinity, infinity)
else
closest <- pairs.[0]
for i in pairs do
if (distance i) < (distance closest) then closest <- i
上記の機能は、浮動小数点のペアのリストを通過します。各対は、デカルト平面上の座標のように動作する。この関数は、原点に最も近いペアを見つけます。一番下のforループは型エラーを生成します。F#エラー:間違ったタイプが予想されますか?
"This expression was expected to have type float * float but here has type unit"
どうすればこのエラーを修正できますか?あなたがfloat * float
タプルを返しているが、else
ブロックにあなたがclosest
変数を変異とunit
を戻ってきているif
ブロックで
うわー...私はそれを逃したとは思わない。どうもありがとうございます! – pooperdooper
心配はいりません。第2の目は決して痛くない。 –