Comment detail

逆順になるあみだくじ (Nested Flatten)
難しかったです。結果として「任意の列に対して、それをソートした結果になるあみだくじを生成」版になってると思います。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
let rec make_ladder = function
| [] -> print_newline (); []
| [x] -> print_endline "| "; [x]
| x::y::xs when x < y -> print_string "|_| "; (y::x::make_ladder xs)
| x::y::xs -> print_string "| "; (x::make_ladder (y::xs))

let rec amida l =
  let rec complete = function
  | [x] -> true
  | x::y::xs -> x > y && complete (y::xs)
  in
  if (complete l) then make_ladder l
  else (amida (make_ladder l))
;;

Index

Feed

Other

Link

Pathtraq

loading...