パスワードを忘れた? アカウント作成
494772 journal

今更、FizzBuzz問題

日記 by M-FalconSky

はてブ - どうしてプログラマに・・・プログラムが書けないのか?より。

言語はEmacs Lisp
あえて無駄な処理も多し。

;; FizzBuzz -*- coding; iso-2022-jp -*-
 
(defun FizzBuzz (min max)
  (let ((buf (get-buffer-create "*FizzBuzz*"))
    (num min)
    (fizz 0)
    (buzz 0))
    (when (>= min max)
      (throw 'error
         "Value ileagal"))
    (buffer-disable-undo buf)
    (pop-to-buffer buf)
    (with-current-buffer buf
      (toggle-read-only -1)
      (erase-buffer)
      (while (<= num max)
    (let ((mod3 (% num 3))
          (mod5 (% num 5)))
      (progn
        (cond
         ((and (eq mod3 0) (not (eq mod5 0)))
          (insert "Fizz")
          (incf fizz))
         ((and (not (eq mod3 0)) (eq mod5 0))
          (insert "Buzz")
          (incf buzz))
         ((and (eq mod3 0) (eq mod5 0))
          (insert "FizzBuzz")
          (incf fizz)
          (incf buzz))
         (t
          (insert (format "%d" num))))
        (insert "\n")
        (incf num))))
      (set-buffer-modified-p nil)
      (toggle-read-only 1)
      (message "%s:%d %s:%d" "Fizz" fizz "Buzz" buzz))))

# どっか間違えてなきゃいいけど。

ちなみに、whileループ内の本質的な部分だけなら、さすがに1分くらいでできたと思う。
けど、色々考えてこうなってます。

以降、これを基本形として改善していってみる。
# そもそもの問題とは離れるけどね。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...