|
|
;;大侠帮个忙,我编了一个程序,发现一点问题,请教于您,$ | N5 x# u3 b* L* f0 L- d6 q
疑问。一是,我想我不停地输入,希望这些输入最后都变成列表返回;第二
& ~# _* H7 ?6 h: v" H A/ W* S步是在这个列表中,我想输入一个m,然后返回第m个值以后的列表.
! x- r% a- D9 h6 s8 f5 B$ X遇到的问题:第一步:我发现while不能停下来,不停的输入输入,即便回车还
6 u0 S, I& [# V, T/ k/ S是要求输入。对于第二步,一根肠子通到底的那种程序,
. a9 C4 v4 [% L: r我已经差不多写出来了,主要是想学习一下子程序,但是我在调用的时候,老是提
" T* r: b" o6 ?3 A3 m; X0 ~& X示我no function definition CNR,非常感激不尽;
3 |' Z0 O# o* a+ H3 o
/ H( a6 f j' o8 q(defun C:5test10()! m) M' r/ _6 D
;;# R1 c1 E. D' r. m: [) t( y& F8 {
(setq str (getstring "The first string:"))& ~+ W# u- d9 ?7 A
(setq input1_list '(str))
0 C) u7 `3 S- w; h* {4 D i(while str
& v5 ~6 Y" W$ `( U% d- n K(setq str (getstring "\nThe next string:"))
8 c9 v2 S/ y6 ], E2 A6 J(setq input_list (cons str input1_list))
+ A( J2 P; B+ \6 q0 A3 `). D' j3 F6 o8 r; e7 S5 w) ?# Y% a
(princ "input_list:")(princ input_list)
. U$ p: Y. ^5 P0 D2 p2 p0 F(setq m (getint "\nThe start number:"))$ [' W- R: ~ P8 N5 K
(setq output_list (cnr m input_list))6 V- O9 B8 D( _& E& r5 V( ]
(princ "output_list:")(princ output_list). v7 _. z8 M, i
;;9 y p; Q: Z8 l# B
(defun cnr(t alist)
. B6 d( z( ?( ~4 C' f(setq i 1)
/ o+ P1 [7 t: [! d(while (< i t)
- @' q8 v- x3 k2 f7 p4 A7 t( J: t2 s(setq alist (cdr alist))
2 @' v1 I* x; c5 v(setq i (+ i 1)) F' y8 C& c1 C+ T
)
. h2 }% {& F0 H4 }(cdr alist)" h5 x: [. Z! W9 O# M& M: V
)
5 s8 ~' m" q9 z; h+ Q1 v G;;3 `% N" K: p o) l" a% b
(prin1)0 [* i6 `% A- q7 W) O* [
) |
|