作者: Noritsugu Nakamura
日時: 2003/2/20(19:20)
中村 のりつぐ です。

In article <20030213.040728.33877269.rubikitch@...-lang.org> 
rubikitch <rubikitch@...-lang.org> wrote:
> EmacsLispでやってみると
> 
> (let (a b x (y 1))
>   (while (<= y 1001)
>     (setq a (- 2003 y)
>           x (- 100000 y)
>           b (/ x a))
>     (when (zerop (% x a))
>       (princ (format "%S\n" (list a b))))
>     (setq y (1+ y))))
> (1849 54)
> nil

はじめての? GCL

(let (a b x y)
  (do ((y 1 (+ y 1)))
      ((> y 1001))
      (setq a (- 2003 y)
            x (- 100000 y)
            b (/ x a))
      (when (zerop (mod x a))
        (princ (list a b)))
))

; guile
(let ((a nil) (b nil) (x nil))
  (do ((y 1 (+ y 1)))
      ((> y 1001))
      (set! a (- 2003 y))
      (set! x (- 100000 y))
      (set! b (/ x a))
      (if (zero? (modulo x a))
        (write (list a b)))
))

; Gauche
(let ((a 1) (b 1) (x 1))
  (do ((y 1 (+ y 1)))
      ((> y 1001))
      (set! a (- 2003 y))
      (set! x (- 100000 y))
      (set! b (/ x a))
      (if (zero? (modulo x a))
        (write (list a b)))
))

1. let 式の使い方が良く分からなかった…
2. Gauche では nil はダメみたい #f ?

       中村 典嗣  E-mail:     nnakamur@...