> どこでオーバーフローしてるのかわからない…
いわゆる 「Implementation Dependent」の問題 じゃないかと思うので、全体像(問題の所在)が見えないが、
>>28
> (defun abcd(y) (if(= y 10) (print (abc y))
これを
> (defun abcd(y) (if(= y 10) nil
とすると、 正常終了してくれる ♪
> どこでオーバーフローしてるのかわからない…
いわゆる 「Implementation Dependent」の問題 じゃないかと思うので、全体像(問題の所在)が見えないが、
>>28
> (defun abcd(y) (if(= y 10) (print (abc y))
これを
> (defun abcd(y) (if(= y 10) nil
とすると、 正常終了してくれる ♪
いまいち美しくないが・・・
(defun kuku (y)
(if (= y 10) nil
(progn
(print (kukuRow y y (* y 10)))
(kuku (+ y 1)) ) ))
(defun kukuRow (x incval stopval)
(if (= x stopval) nil
(cons x (kukuRow (+ x incval) incval stopval )) ))
(kuku 1) ; 実行!
やっと分ったw
>>28
> (defun abcd (y)
(if (= y 10) (print (abc y))
(progn
(defun abc(x)
(if (= x (* y 10)) nil
この最後の行を
> (if (>= x (* y 10)) nil
に変えると、 正常終了してくれる ♪
>>23 console:
[24]> (load "a.lsp")
1. (load "a") でも良い。
2. キーボードの ↑(矢印ボタン) を使うと入力が省略できる。
(defun kuku () ; 印刷のみ
(do ((x 1 (1+ x))) ((>= x 10) nil)
(do ((y 1 (1+ y))) ((>= y 10) nil)
(format t " ~3d " (* x y)))
(format t "~%")))
(kuku )
(defun kukuval () ; 値は逆順(99から)
(do ((val nil) (x 1 (1+ x)))
((>= x 10) val)
(do ((row nil) (y 1 (1+ y)))
((>= y 10) (push row val))
(push (* x y) row)) ))
(defun run () (kukuval ))
(setq kk (reverse (mapcar #'reverse (run)))) ; Mapcarが APL(関数プログラミング)ふう