Skip to content

Instantly share code, notes, and snippets.

@sugitach
Created November 13, 2014 11:54
Show Gist options
  • Save sugitach/4ce871ee1cd743c3de09 to your computer and use it in GitHub Desktop.
Save sugitach/4ce871ee1cd743c3de09 to your computer and use it in GitHub Desktop.
#use "metro.ml"
(* 目的:ふたつの駅の漢字の駅名とリストを受け取って2駅間の距離を返す *)
(* get_ekikan_kyori : string -> string -> ekikan_t list -> float *)
let rec get_ekikan_kyori s1 s2 lst =
if s1 = s2
then 0.
else match lst with
[] -> infinity
| first::rest -> if (first.kiten = s1 && first.shuten = s2) ||
(first.kiten = s2 && first.shuten = s1)
then first.kyori
else get_ekikan_kyori s1 s2 rest
(* テスト *)
let test1 = get_ekikan_kyori "茗荷谷" "茗荷谷" global_ekikan_list = 0.
let test1 = get_ekikan_kyori "茗荷谷" "新大塚" global_ekikan_list = 1.2
let test2 = get_ekikan_kyori "新大塚" "茗荷谷" global_ekikan_list = 1.2
let test3 = get_ekikan_kyori "北千住" "茗荷谷" global_ekikan_list = infinity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment