作者: 閑舎
日時: 2002/4/09(14:46)
Tsutomu Hiroshima <tsutomu@...> さん writes.

> ;;; 解1
> ;;; 名前付き let による終端再帰を使った素直な解
> (display
>  (let loop ((total 0))
>    (let ((num (read)))
>      (if (zero? num)
> 	 total
> 	 (loop (+ total num))))))

Scheme ってこういう書き方ができるとは便利ですね。Emacs Lisp だと、

(let ((loop t) (total 0))
  (while loop
	(setq num (read-minibuffer ""))
	(if (= num 0)
		(progn (setq loop nil)
			   (message (format "%f" total))
			   (sleep-for 2))
	  (setq total (+ total num))
)))

というような書き方しか思いつきません。

--
本田博通(閑舎)
Hiromichi Honda <raku@...>