dojo/fsharp/MyList/Program.fs at main · tk3/dojo
何とか書けました。もっと早く書けそうな気がしたんだけれど、自信をなくしてしまいました。愚直にforを使っています。もっと短く書けそうな気がしますが、また今度。
open System
[<EntryPoint>]
let main argv =
let rnd = Random()
let randomArray = [| for i in 1 .. 10 -> rnd.Next(1, 101) |]
for i = 0 to randomArray.Length - 2 do
for j = 0 to randomArray.Length - 2 - i do
if randomArray[j] > randomArray[j + 1] then
let tmp = randomArray[j]
randomArray[j] <- randomArray[j + 1]
randomArray[j + 1] <- tmp
printfn "%A" randomArray
0
#
今回分かったこと
- ランダムな数値の生成方法
- Arrayは長さは変更できないが、値を後から書き換えることができる
- randomArray.[j] <- randomArray.[j + 1]
- 書き込みをさせたくないならListを使う
- Array生成と同時に値を設定することが可能で、式を指定することができる
- let randomArray = [| for i in 1 .. 10 -> rnd.Next(1, 101) |]
- Arrayの値をアクセスは randomArray[i] なのか randomArray.[i] なのか。一緒には見える