現在時刻を返す関数を定義しようと思ったら,

(1) 現在時刻を含む引数を取るようにする.例: time = λx.x
(2) 呼び出された時の引数の値をすべて記録しておき,新しい値がきたら
  現在時刻を何らかの手段で取得して返す.既出の値だったら,その値
  に対して以前返した時刻を返す.
  例: time 1 = 11:23; ... ; time 2 = 12:35; time 1 = 11:23; time 3 = 12:36; ...

の2つしかないと思う.
(2)の場合,同じプログラムでも実行するたびに関数の定義が変化するのは
いいのだろうか.