锘??xml version="1.0" encoding="utf-8" standalone="yes"?>色偷偷91久久综合噜噜噜噜,久久精品国产99久久无毒不卡 ,久久人人爽人人人人片avhttp://www.shnenglu.com/varg-vikernes/category/17616.htmlzh-cnMon, 22 Aug 2011 04:45:43 GMTMon, 22 Aug 2011 04:45:43 GMT60lisp let,let*http://www.shnenglu.com/varg-vikernes/archive/2011/08/22/154059.html緋背緋背Mon, 22 Aug 2011 03:50:00 GMThttp://www.shnenglu.com/varg-vikernes/archive/2011/08/22/154059.htmlhttp://www.shnenglu.com/varg-vikernes/comments/154059.htmlhttp://www.shnenglu.com/varg-vikernes/archive/2011/08/22/154059.html#Feedback0http://www.shnenglu.com/varg-vikernes/comments/commentRss/154059.htmlhttp://www.shnenglu.com/varg-vikernes/services/trackbacks/154059.html
let and let* create new variable bindings and execute a series of forms that use these bindings. 
let performs the bindings in parallel and let* does them sequentially.

The form

(let ((var1 init-form-1)
(var2 init-form-2)
...
(varm init-form-m))
declaration1
declaration2
...
declarationp
form1
form2
...
formn)

first evaluates the expressions init-form-1, init-form-2, and so on, in that order, saving the resulting values.
Then all of the variables varj are bound to the corresponding values;
each binding is lexical unless there is a special declaration to the contrary.
The expressions formk are then evaluated in order; the values of all but the last are discarded
(that is, the body of a let is an implicit progn).
let* is similar to let, but the bindings of variables are performed sequentially rather than in parallel.
The expression for the init-form of a var can refer to vars previously bound in the let*.

The form

(let* ((var1 init-form-1)
(var2 init-form-2)
...
(varm init-form-m))
declaration1
declaration2
...
declarationp
form1
form2
...
formn)
first evaluates the expression init-form-1, then binds the variable var1 to that value;
then it evaluates init-form-2 and binds var2, and so on.
The expressions formj are then evaluated in order;
the values of all but the last are discarded (that is, the body of let* is an implicit progn).

For both let and let*, if there is not an init-form associated with a var, var is initialized to nil.

The special form let has the property that the scope of the name binding does not include any initial value form.
For let*, a variable's scope also includes the remaining initial value forms for subsequent variable bindings.


Examples:

(setq a 'top) => TOP
(defun dummy-function () a) => DUMMY-FUNCTION
(let ((a 'inside) (b a))
(format nil "~S ~S ~S" a b (dummy-function))) => "INSIDE TOP TOP"
(let* ((a 'inside) (b a))
(format nil "~S ~S ~S" a b (dummy-function))) => "INSIDE INSIDE TOP"
(let ((a 'inside) (b a))
(declare (special a))
(format nil "~S ~S ~S" a b (dummy-function))) => "INSIDE TOP INSIDE"


緋背 2011-08-22 11:50 鍙戣〃璇勮
]]>
lisp loop,dotimes,dolist,dohttp://www.shnenglu.com/varg-vikernes/archive/2011/08/22/154055.html緋背緋背Mon, 22 Aug 2011 03:05:00 GMThttp://www.shnenglu.com/varg-vikernes/archive/2011/08/22/154055.htmlhttp://www.shnenglu.com/varg-vikernes/comments/154055.htmlhttp://www.shnenglu.com/varg-vikernes/archive/2011/08/22/154055.html#Feedback0http://www.shnenglu.com/varg-vikernes/comments/commentRss/154055.htmlhttp://www.shnenglu.com/varg-vikernes/services/trackbacks/154055.html

Simple LOOP loops forever...

? (loop
    (print "Look, I'm looping!"))
"Look, I'm looping!" 
"Look, I'm looping!" 
"Look, I'm looping!" 
"Look, I'm looping!" 
"Look, I'm looping!" 
"Look, I'm looping!" 
"Look, I'm looping!" 
"Look, I'm looping!" 
... and so on, until you interrupt execution... 
Aborted
? 

? (let ((n 0))
    (loop
      (when (> n 10) (return))
      (print n) (prin1 (* n n))
      (incf n)))
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100
NIL
?


Use DOTIMES for a counted loop

? (dotimes (n 11)
    (print n) (prin1 (* n n)))
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100
NIL
?


Use DOLIST to process elements of a list

? (dolist (item '(1 2 4 5 9 17 25))
    (format t "~&~D is~:[n't~;~] a perfect square.~%" item (integerp (sqrt item))))
1 is a perfect square.
2 isn't a perfect square.
4 is a perfect square.
5 isn't a perfect square.
9 is a perfect square.
17 isn't a perfect square.
25 is a perfect square.
NIL


? (dolist (item `(1 foo "Hello" 79.3 2/3 ,#'abs))
    (format t "~&~S is a ~A~%" item (type-of item)))
1 is a FIXNUM
FOO is a SYMBOL
"Hello" is a (SIMPLE-BASE-STRING 5)
79.3 is a DOUBLE-FLOAT
2/3 is a RATIO
#<Compiled-function ABS #x1E9CC3E> is a FUNCTION
NIL
? 

DO is tricky, but powerful

? (do ((which 1 (1+ which))
       (list '(foo bar baz qux) (rest list)))
      ((null list) 'done)
    (format t "~&Item ~D is ~S.~%" which (first list)))
Item 1 is FOO.
Item 2 is BAR.
Item 3 is BAZ.
Item 4 is QUX.
DONE
? 
(do ((var1 init1 step1)
     (var2 init2 step2)
     ...)
    (end-test result)
  statement1
  ...)

var1       = which
init1      = 1
step1      = (1+ which)
var2       = list
init2      = '(foo bar baz qux)
step2      = (rest list)
end-test   = (null list)
result     = 'done
statement1 = (format t "~&Item ~D is ~S.~%" which (first list))





緋背 2011-08-22 11:05 鍙戣〃璇勮
]]>
lisp find find-if find-if-nothttp://www.shnenglu.com/varg-vikernes/archive/2011/08/19/153887.html緋背緋背Fri, 19 Aug 2011 14:04:00 GMThttp://www.shnenglu.com/varg-vikernes/archive/2011/08/19/153887.htmlhttp://www.shnenglu.com/varg-vikernes/comments/153887.htmlhttp://www.shnenglu.com/varg-vikernes/archive/2011/08/19/153887.html#Feedback0http://www.shnenglu.com/varg-vikernes/comments/commentRss/153887.htmlhttp://www.shnenglu.com/varg-vikernes/services/trackbacks/153887.html

find item sequence &key from-end test test-not start end key => element

find-if predicate sequence &key from-end start end key => element

find-if-not predicate sequence &key from-end start end key => element

Arguments and Values:

item---an object.

sequence---a proper sequence.

predicate---a designator for a function of one argument that returns a generalized boolean.
鎺ュ彈涓涓弬鏁扮殑鍑芥暟錛岃繑鍥瀊oolean

from-end---a generalized boolean. The default is false.
boolean綾誨瀷錛岄粯璁や負false

test---a designator for a function of two arguments that returns a generalized boolean.
鎺ュ彈涓や釜鍙傛暟鐨勫嚱鏁幫紝榪斿洖boolean

test-not---a designator for a function of two arguments that returns a generalized boolean.
鎺ュ彈涓や釜鍙傛暟鐨勫嚱鏁幫紝榪斿洖boolean

startend---bounding index designators of sequence. The defaults for start and end are 0 and nil, respectively.

key---a designator for a function of one argument, or nil.

element---an element of the sequence, or nil.

findfind-if, and find-if-not each search for an element of the sequence bounded by start and end that satisfies the predicate predicate or that satisfies the test test or test-not, as appropriate.

If from-end is true, then the result is the rightmost element that satisfies the test.

If the sequence contains an element that satisfies the test, then the leftmost or rightmost sequence element, depending on from-end, is returned; otherwise nil is returned.


Examples:

Examples:
(find #\d "here are some letters that can be looked at" :test #'char>)
=> #\Space
(find-if #'oddp '(1 2 3 4 5) :end 3 :from-end t) => 3
(find-if-not #'complexp '#(3.5 2 #C(1.0 0.0) #C(0.0 1.0)) :start 2) => NIL


緋背 2011-08-19 22:04 鍙戣〃璇勮
]]>
lisp MAPC, MAPCAR, MAPCAN, MAPL, MAPLIST, MAPCONhttp://www.shnenglu.com/varg-vikernes/archive/2011/08/19/153861.html緋背緋背Fri, 19 Aug 2011 13:44:00 GMThttp://www.shnenglu.com/varg-vikernes/archive/2011/08/19/153861.htmlhttp://www.shnenglu.com/varg-vikernes/comments/153861.htmlhttp://www.shnenglu.com/varg-vikernes/archive/2011/08/19/153861.html#Feedback0http://www.shnenglu.com/varg-vikernes/comments/commentRss/153861.htmlhttp://www.shnenglu.com/varg-vikernes/services/trackbacks/153861.html

mapc function &rest lists+ => list-1

mapcar function &rest lists+ => result-list

mapcan function &rest lists+ => concatenated-results

mapl function &rest lists+ => list-1

maplist function &rest lists+ => result-list

mapcon function &rest lists+ => concatenated-results

mapcar operates on successive elements of the listsfunction is applied to the first element of each list, then to the second element of each list, and so on. The iteration terminates when the shortest list runs out, and excess elements in other lists are ignored. The value returned by mapcar is a list of the results of successive calls to function.

mapcar 棣栧厛灝嗗嚱鏁癮pply鍒版瘡涓垪琛ㄧ殑絎竴涓厓绱狅紝鍐嶅皢鍑芥暟apply鍒版瘡涓垪琛ㄧ殑絎簩涓厓绱犮傘?br />涓鐩村埌鏈鐭殑鍒楄〃鐨勬渶鍚庝竴涓厓绱犮傚墿涓嬬殑鍏冪礌灝嗚蹇界暐銆?br />瀹冪殑緇撴灉鏄繑鍥炲間笉涓簄il鐨勯泦鍚堛?/em>

mapc is like mapcar except that the results of applying function are not accumulated. The list argument is returned.

mapc 鍜?mapcar 綾諱技銆備笉榪囪繑鍥炵殑鏄涓涓垪琛ㄣ?/div>

maplist is like mapcar except that function is applied to successive sublists of the listsfunction is first applied to the lists themselves, and then to the cdr of each list, and then to the cdr of the cdr of each list, and so on.

maplist 鍜?mapcar 綾諱技錛屼笉榪囬鍏堝皢鍑芥暟apply鍒版瘡涓垪琛紝鐒跺悗灝嗗嚱鏁癮pply鍒版瘡涓垪琛ㄧ殑cdr錛岀劧鍚庡皢鍑芥暟apply鍒版瘡涓垪琛ㄧ殑cddr銆傘?br />鐩村埌鏈鐭殑涓涓垪琛ㄤ負絀轟負姝€?/div>

mapl is like maplist except that the results of applying function are not accumulated; list-1 is returned.

mapl鍜宮aplist綾諱技錛屼絾鏄繑鍥炵殑鏄涓涓垪琛ㄣ?/div>

mapcan and mapcon are like mapcar and maplist respectively, except that the results of applying function are combined into a list by the use of nconc rather than list. That is,

mapcan 鍜?mapcon 綾諱技浜?mapcar 鍜?maplist銆傚畠浠嬌鐢?nconc 榪炴帴緇撴灉鑰屼笉鏄?list銆?br />
Examples
(mapcar #'car '((1 a) (2 b) (3 c))) =>  (1 2 3)   
(mapcar #'abs '(3 -4 2 -5 -6)) => (3 4 2 5 6)
(mapcar #'cons '(a b c) '(1 2 3)) => ((A . 1) (B . 2) (C . 3))

(maplist #'append '(1 2 3 4) '(1 2) '(1 2 3))  =>  ((1 2 3 4 1 2 1 2 3) (2 3 4 2 2 3)) 
(maplist #'(lambda (x) (cons 'foo x)) '(a b c d)) => ((FOO A B C D) (FOO B C D) (FOO C D) (FOO D))
(maplist #'(lambda (x) (if (member (car x) (cdr x)) 0 1)) '(a b a c d b c)) => (0 0 1 0 1 1 1)
(setq dummy nil) =>  NIL   
(mapc #'(lambda (&rest x) (setq dummy (append dummy x)))
'(1 2 3 4)
'(a b c d e)
'(x y z)) => (1 2 3 4)
dummy => (1 A X 2 B Y 3 C Z)

(setq dummy nil) =>  NIL   
(mapl #'(lambda (x) (push x dummy)) '(1 2 3 4)) => (1 2 3 4)
dummy => ((4) (3 4) (2 3 4) (1 2 3 4))

(mapcan #'(lambda (x y) (if (null x) nil (list x y)))
'(nil nil nil d e)
'(1 2 3 4 5 6)) => (D 4 E 5)
(mapcan #'(lambda (x) (and (numberp x) (list x)))
'(a 1 b c 3 4 d 5)) => (1 3 4 5)

(mapcon #'list '(1 2 3 4)) =>  ((1 2 3 4) (2 3 4) (3 4) (4))  



 



緋背 2011-08-19 21:44 鍙戣〃璇勮
]]> 精品综合久久久久久888蜜芽| 久久久91人妻无码精品蜜桃HD| 久久热这里只有精品在线观看| 欧美久久久久久精选9999| 精品人妻伦一二三区久久| 亚洲日本va午夜中文字幕久久 | 久久久久亚洲AV片无码下载蜜桃| 九九久久自然熟的香蕉图片| 91久久精品无码一区二区毛片| 中文精品久久久久人妻| 国产精品久久久久久久| 伊人久久大香线蕉成人| 精品久久久久久无码中文字幕一区| 久久99国产精品99久久 | 国产69精品久久久久9999APGF| 国产成人久久AV免费| 思思久久99热免费精品6| 色综合久久天天综合| 少妇精品久久久一区二区三区| 久久精品国产精品亚洲| 国产精品久久久久无码av| 天堂久久天堂AV色综合| 久久精品国产久精国产一老狼| 久久久精品日本一区二区三区| 热久久这里只有精品| 国产亚洲婷婷香蕉久久精品| 精品多毛少妇人妻AV免费久久| 亚洲中文字幕伊人久久无码| 精品视频久久久久| 国内精品伊人久久久久影院对白 | 99久久久国产精品免费无卡顿| 久久久久99这里有精品10| 国产精品成人99久久久久 | 日韩AV无码久久一区二区| 久久天天躁夜夜躁狠狠躁2022| 国产呻吟久久久久久久92| 国产99久久久久久免费看 | 亚洲国产精品久久| 国内精品久久久久久野外| 久久99精品久久久久久| 久久九九亚洲精品|