Comment detail

ファイル更新の監視 (Nested Flatten)

This comment is reply for 385 es: なんか根本的にわかってないかもですが・・(ファイル更新の監視). Go to thread root.

同じ方針ですが、modifyされているときのアクションは純粋に副作用だけなので(printするだけ)、

(if 条件 (loop) (begin (action) (loop)))

よりは

(unless 条件 (action))
(loop)

のように副作用だけくくり出してしてしまうのが好みですね 
(分岐が増えた場合でもloopは一箇所にまとめられるし)。たとえば:
1
2
3
4
5
6
7
(define (modify-checker)
  (let loop ((previous #f)
             (modified (file-mtime filename)))
    (when (and previous (not (= previous modified)))
      (print "modified"))
    (sys-sleep 3)
    (loop modified (file-mtime filename))))
おお、キレイ!
勉強になります。ありがとうございます。

あと自分のでは、8行目と11行目の間に更新されると"modified!"の出力が一回少なくなってしまいますね。

Index

Feed

Other

Link

Pathtraq

loading...