F# メモ

そろそろ F# で何か作りたくなってきた。.NET ってタイマー 3 種類もあるのね。

#light
let timer = new System.Timers.Timer()
timer.Interval <- 500.
timer.Elapsed.Add(fun e -> print_endline (e.SignalTime.ToString()))
timer.Enabled <- true

System.Threading.Thread.Sleep(2000)
#light
open System
open System.Drawing
open System.Windows.Forms

let form = new Form()
form.ClientSize <- new Size(150, 50)
form.FormClosed.Add(fun e ->Application.Exit())
form.Paint.Add(fun e ->
  e.Graphics.DrawString(DateTime.Now.ToString(), form.Font, new SolidBrush(Color.Black), new PointF()))
form.Visible <- true

let timer = new Timer()
timer.Interval <- 1000
timer.Tick.Add(fun e -> form.Invalidate())
timer.Enabled <- true

Application.Run(form)

スーパー pre 記法が F# に対応していないので Ocaml で我慢する。