|
;;大侠帮个忙,我编了一个程序,发现一点问题,请教于您,
6 n8 G2 t+ N: z) w* w: A( n疑问。一是,我想我不停地输入,希望这些输入最后都变成列表返回;第二 ]5 Z7 j0 f$ @0 q
步是在这个列表中,我想输入一个m,然后返回第m个值以后的列表.
. W4 w3 ?' Q/ d9 e/ L& S% h遇到的问题:第一步:我发现while不能停下来,不停的输入输入,即便回车还1 F8 @& f v- W4 t' G( b
是要求输入。对于第二步,一根肠子通到底的那种程序,. ]* X& n# x& k
我已经差不多写出来了,主要是想学习一下子程序,但是我在调用的时候,老是提
0 X! `' L- A9 g6 m" D示我no function definition CNR,非常感激不尽;. V h6 a- B5 w3 s- A6 A
4 v- i+ w- I2 f(defun C:5test10()2 R; o; v2 Y; ^! V- A
;;" y& f$ ]2 [- d5 [
(setq str (getstring "The first string:"))# T; k8 ~; ~3 P" f! r. U2 E
(setq input1_list '(str))
8 v3 j) {# o6 i6 r, ^4 Q6 @/ Z(while str
4 U& S, |/ _5 W3 f/ b7 n* n(setq str (getstring "\nThe next string:"))" j; l0 n @2 B& \
(setq input_list (cons str input1_list))) @+ G1 S- j! t2 ~0 o
)( e8 |" i7 {; n% ?5 U- G' F5 X
(princ "input_list:")(princ input_list)) Z9 z; S' P' s( g2 N" |
(setq m (getint "\nThe start number:"))
! X7 ^, m7 @2 F0 k. _* O(setq output_list (cnr m input_list))& y& U0 d, a4 J, ?% s& j/ ?/ q, l
(princ "output_list:")(princ output_list)
) E- M# s" K9 x0 j;;
1 a& a$ E$ o0 P, g3 r(defun cnr(t alist): P X" Z/ h- z- q. j
(setq i 1)6 I; r: ]3 H2 E Z* {, ?6 Q, [
(while (< i t)4 H F( A- A; E; N7 i+ _# t0 M
(setq alist (cdr alist))
$ M, {/ ^7 P2 `4 B(setq i (+ i 1))
9 Z+ q: t+ T6 m& `& k)+ _' C5 F$ ^! K: p, h+ k
(cdr alist)
& V0 Q3 G4 Y# k b: a; v2 j4 j)
0 B( Q' w) t" T* V& h;;* a* j8 P5 J( f0 s. R% k
(prin1)2 N3 D/ `/ d1 ~. S& F0 n
) |
|