module Doukaku179 = begin
type PeriodicAutoWriter = class
val mutable timer : System.Threading.Timer
new() = { timer = null }
member t.Start() = t.timer <- new System.Threading.Timer(
(fun _ -> printf "%s" "a"), null, 0, 1000)
member t.Stop() = if t.timer <> null then (t.timer.Dispose();
t.timer <- null)
else ()
member t.Toggle() = if t.timer = null then t.Start() else t.Stop()
end
let read_char () = System.Console.ReadKey().KeyChar
let keep_read () = seq { while true do yield read_char () done }
let run () = let writer = new PeriodicAutoWriter() in
writer.Start ();
seq { for c in keep_read () do
yield (match c with
'q' -> writer.Stop(); false
| 'p' -> writer.Toggle(); true
| _ -> true)
done }
|> Seq.find ((=) false)
|> (fun _ -> printfn "%s" "");;
end;;
#if COMPILED
let _ = Doukaku179.run ();;
#endif
いげ太
#6356()
[
Other
]
Rating0/0=0.00
ざっくりと。
module Doukaku179 = begin type PeriodicAutoWriter = class val mutable timer : System.Threading.Timer new() = { timer = null } member t.Start() = t.timer <- new System.Threading.Timer( (fun _ -> printf "%s" "a"), null, 0, 1000) member t.Stop() = if t.timer <> null then (t.timer.Dispose(); t.timer <- null) else () member t.Toggle() = if t.timer = null then t.Start() else t.Stop() end let read_char () = System.Console.ReadKey().KeyChar let keep_read () = seq { while true do yield read_char () done } let run () = let writer = new PeriodicAutoWriter() in writer.Start (); seq { for c in keep_read () do yield (match c with 'q' -> writer.Stop(); false | 'p' -> writer.Toggle(); true | _ -> true) done } |> Seq.find ((=) false) |> (fun _ -> printfn "%s" "");; end;; #if COMPILED let _ = Doukaku179.run ();; #endifRating0/0=0.00-0+
[ reply ]