プログラミングの基礎 saitanwo_bunriを書き直し
うーむ。先に進まず。どうしよう。どうしてもリストを更新してくと最短の距離を持たない駅が生まれます。。
let saitan_wo_bunri xs = match xs with [] -> ([], []) | first::rest -> let min = List.fold_right (fun k data -> if k.saitan_kyori < data.saitan_kyori then k else data) (List.tl xs) (List.hd xs) in ([min], (List.filter (fun x -> x <> min) xs)) let test_eki1 = {namae = "代々木上原"; saitan_kyori = infinity; temae_list = []} let test_eki2 = {namae = "代々木公園"; saitan_kyori = infinity; temae_list = []} let test_eki3 = {namae = "明治神宮"; saitan_kyori = infinity; temae_list = []} let test_eki4 = {namae = "乃木坂"; saitan_kyori = infinity; temae_list = []} let test_eki5 = {namae = "代々木公園"; saitan_kyori = 0.0; temae_list = ["代々木上原"]} let test_saitan_wo_bunri = saitan_wo_bunri [test_eki1;test_eki2;test_eki3;test_eki4;test_eki5] = ([test_eki5], [test_eki1;test_eki2;test_eki3;test_eki4]) let test_saitan_wo_bunri2 = saitan_wo_bunri [] = ([],[])
プログラミングの基礎 ((Computer Science Library))
- 作者: 浅井健一
- 出版社/メーカー: サイエンス社
- 発売日: 2007/03/01
- メディア: 単行本
- 購入: 17人 クリック: 409回
- この商品を含むブログ (127件) を見る