|
;;大侠帮个忙,我编了一个程序,发现一点问题,请教于您,* Z7 [' V9 l1 I% C Q: h
疑问。一是,我想我不停地输入,希望这些输入最后都变成列表返回;第二0 q/ E3 I5 @/ q- O4 Y
步是在这个列表中,我想输入一个m,然后返回第m个值以后的列表.
8 }, @7 n8 e8 S- a( P( X遇到的问题:第一步:我发现while不能停下来,不停的输入输入,即便回车还
/ J- Q( v' |6 k- S是要求输入。对于第二步,一根肠子通到底的那种程序,$ J! b% G+ }. ^4 y7 u$ c
我已经差不多写出来了,主要是想学习一下子程序,但是我在调用的时候,老是提
, Z& |6 T% F: Y+ J/ H! u示我no function definition CNR,非常感激不尽;
, P, S3 y; V' u* f+ `) _& Z0 Q; ^# Q% h6 \" m
(defun C:5test10()* u9 j6 q' ?' z$ b* Z% |; Q$ l
;;
: R \/ R; T" q; i9 m+ x(setq str (getstring "The first string:"))% _# L& B+ e/ u% o
(setq input1_list '(str)): l4 h5 n& [7 O1 Q6 t! f1 U$ _4 s
(while str
: W( ?% X7 o+ [(setq str (getstring "\nThe next string:"))
5 j6 y: _: j' y# ]* }(setq input_list (cons str input1_list))
% L! H' x9 J2 I; t3 k. y1 k+ m- p( I" ]; p)0 R i* Y% B4 _5 a
(princ "input_list:")(princ input_list)
" y' _# D& }! O5 d3 h(setq m (getint "\nThe start number:"))
% \0 W" c9 ^* b; T5 {(setq output_list (cnr m input_list))& g2 w( {( x( c/ A/ i0 ?8 d, F8 A
(princ "output_list:")(princ output_list)1 p, T) p* @/ k# B6 a* l
;;- a' X: U6 B$ g% U1 {
(defun cnr(t alist)
7 L8 D( A; B& X/ o0 y# |, V(setq i 1)
5 U- q H4 g, f# a+ v' L" D2 _1 L; G(while (< i t)
' x w( D& j5 ?(setq alist (cdr alist))
4 a9 Q/ Y! l1 q6 X(setq i (+ i 1))
% Z) M5 _) ~2 f& S, _)
1 s/ ?/ Y; F0 `: Q+ W- W8 d5 T7 X(cdr alist)
% L9 W4 i$ C6 d! J) C)
+ |) k6 |% q' W' a: C/ S" w3 j;;, P) ~$ |) X) T+ o3 z! _ M
(prin1)% l; }4 }6 ]/ W% m' X6 h3 y" D" Q
) |
|