競技プログラミングのためのF#入門
1 2 3
let N,X = stdin.ReadLine().Split() |> Array.map int |> (fun x -> x.[0],x.[1]) let Ia = stdin.ReadLine().Split() |> Array.map int solve N X Ia |> stdout.WriteLine
線型探索だから先頭から調べます. 命令型言語ではforで見つかり次第breakします. F#でもほぼ同じように書けるもののbreakがありません. 見つかり次第breakするには再帰関数で処理を書くしかありません.
for
break
1 2 3 4 5 6
let solve N X Ia = let rec lsearch i = if i = N-1 then "No" elif Array.get Ia i = X then "Yes" else lsearch (i+1) lsearch 0
最後まで見つからなかったら"No"を返すのを忘れないようにしましょう. 上記のように停止条件を忘れないように条件分岐の一番最初に書いておくのがベターです.
"No"