書き捨て CGI

自分しか使わない CGIMosh で書いた。用途は自分が辞書を引いた単語をためる。
この程度の簡単なものならさくっと作れて良い感じだな。srfi を2つも使っているのは srfi 期だから。

(import (rnrs)
        (mosh control)
        (prefix (mosh cgi) cgi:)
        (srfi :48)
        (srfi :26))

(define dictionary "xxxxxx")

(let ([words (with-input-from-file dictionary read)])
  (define (write-dict words)
    (with-output-to-file dictionary (cut write words)))
  (let-values (([get-value method] (cgi:init)))
    (aif (get-value "word")
         (let ([word (string->symbol it)])
           (if (memq word words)
               '()
               (write-dict (list-sort (lambda words (apply string<? (map symbol->string words))) (cons word words))))
           (cgi:moved-temporarily-header (format "http://eow.alc.co.jp/~a/UTF-8/?ref=sa" word))))))