|
;;大侠帮个忙,我编了一个程序,发现一点问题,请教于您,: a* _& j- S- K3 O
疑问。一是,我想我不停地输入,希望这些输入最后都变成列表返回;第二5 w C# v v7 G) m
步是在这个列表中,我想输入一个m,然后返回第m个值以后的列表.5 W3 u0 l; @1 ^- N
遇到的问题:第一步:我发现while不能停下来,不停的输入输入,即便回车还
. @4 e: {. q( {7 I是要求输入。对于第二步,一根肠子通到底的那种程序,+ J) U# E2 X+ n
我已经差不多写出来了,主要是想学习一下子程序,但是我在调用的时候,老是提
, |* }( d1 L V示我no function definition CNR,非常感激不尽;# q. V8 V8 @1 N! y! g
! ?* |! U B" d4 e6 R: W5 q7 q7 Y
(defun C:5test10()3 J) b. G% q' _. W8 H
;;$ H7 B* W8 \5 M/ N5 c2 l! h' J
(setq str (getstring "The first string:"))
* l) j. H. ]7 b( v$ i2 O/ e(setq input1_list '(str))3 `0 x8 s5 s+ h; D V
(while str ( V) w( b5 n$ P9 K
(setq str (getstring "\nThe next string:"))
$ Q, E% t; h2 D5 |- Y. H# ~(setq input_list (cons str input1_list))
. t' n% U, G7 D6 M R0 {); o/ h0 B' h Z8 V6 z; _
(princ "input_list:")(princ input_list)* C6 _8 z3 F+ w' @3 R0 R
(setq m (getint "\nThe start number:"))
2 S, {% \8 d: s1 E% W1 A(setq output_list (cnr m input_list))5 F6 I1 U# c' H6 j
(princ "output_list:")(princ output_list)
; w4 Y- K# Z, b$ c; r& \+ Q* b `( R;;
3 T' d5 w' V' S5 u! G2 R(defun cnr(t alist)
% Y% i( p; W0 R G! k(setq i 1)
# L4 ~) k3 {: h/ k# ]5 r(while (< i t)
) s, J$ O9 Q; E: \. @(setq alist (cdr alist))2 P! L) V/ T( ~
(setq i (+ i 1))
Y" ?/ Y9 m) e+ f0 U) [- n' G)
1 k3 _, G% S1 Z( Q4 x& i' E(cdr alist)# Q- F% Y2 ]7 E% G" ~7 f# D* Q
)
% n2 \1 |7 e; k+ [% f2 A3 n;;
( F' ^4 W4 |0 F# \+ q) q9 N(prin1)
u8 v6 C. N4 j9 ~$ U, m) |
|