|
;;大侠帮个忙,我编了一个程序,发现一点问题,请教于您,% ^: g) W) R1 g6 R
疑问。一是,我想我不停地输入,希望这些输入最后都变成列表返回;第二
3 [3 {4 p0 @4 ?5 w9 r, k$ ]步是在这个列表中,我想输入一个m,然后返回第m个值以后的列表.
; Y- G. _6 B9 ?2 }9 D9 c: ~遇到的问题:第一步:我发现while不能停下来,不停的输入输入,即便回车还
& S* H, c; j# L0 ? r是要求输入。对于第二步,一根肠子通到底的那种程序,
, ~$ v, A6 \. d; X8 |* y/ } E+ \我已经差不多写出来了,主要是想学习一下子程序,但是我在调用的时候,老是提4 E( T, L) o& ^+ m& _( x4 \. [7 d
示我no function definition CNR,非常感激不尽;
# B3 b K- Q, P+ ^6 e; ?0 {
6 D4 N c4 p& v* d(defun C:5test10()& u; j1 U, L* Z7 {
;;8 I% ?6 T& u/ q# Z
(setq str (getstring "The first string:"))
4 w- R9 q# L9 X* i" A, H/ {# m! U(setq input1_list '(str))
4 v0 h% O: [3 w! Y# M$ S(while str
7 ^& W5 S6 [, {) X9 v% \" D(setq str (getstring "\nThe next string:"))' b( x( e4 O. i8 i# m+ p% z( C; M; u
(setq input_list (cons str input1_list))* |" G; ^9 z0 x* E. f
)
, X1 S. ]8 y& Y0 k4 f(princ "input_list:")(princ input_list)% b+ X: Q% i8 a$ v( s2 a
(setq m (getint "\nThe start number:"))
/ i4 N- i0 W( M' m. M3 i+ C! Z3 N9 T/ l(setq output_list (cnr m input_list))
" E- S6 t& C8 D" O7 E2 c: `(princ "output_list:")(princ output_list)
9 l; E6 k/ r! H6 @+ j$ q s9 B7 Y;;
* N4 J/ J2 @8 [$ k2 s" x2 k(defun cnr(t alist)7 l- `) A6 E3 R4 p- X4 O( V
(setq i 1)
! ]* i) d- k8 Z7 M0 M: J(while (< i t)% o* i& z% y: u
(setq alist (cdr alist))
6 O2 H! b3 n% D, Y) N(setq i (+ i 1))
! l* x, Y3 P5 c/ C% v5 S3 x)- d% f) p2 s) x: a& l/ m" d2 x
(cdr alist)9 O3 A& [7 o) R
)
4 E$ x2 K4 x* s% E# J# w- A4 N; C# ~* N;; S6 G3 `' H ^
(prin1)
6 X" x5 Y. W! o) c2 P( H$ t) |
|