久久精品中文字幕av,av.涩涩涩涩涩涩涩涩,亚洲国产日韩欧美精品成人久久久,成人福利电影免费在线观看,日产国产原创av,日韩av午夜激情,bt天堂中文字幕,超级碰人妻在线视频,欧美老熟妇久久一区二区

企業(yè)??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
本節(jié)既是備注亦作為參考文獻。所有列于此的書籍與論文皆值得閱讀。 **譯注: 備注后面跟隨的數字即書中的頁碼** ## 備注 viii (Notes viii)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#viii-notes-viii "Permalink to this headline") [Steele, Guy L., Jr.](http://en.wikipedia.org/wiki/Guy_L._Steele,_Jr.),?[Scott E. Fahlman](http://en.wikipedia.org/wiki/Scott_Fahlman),?[Richard P. Gabriel](http://en.wikipedia.org/wiki/Richard_P._Gabriel),?[David A. Moon](http://en.wikipedia.org/wiki/David_Moon),?[Daniel L. Weinreb](http://en.wikipedia.org/wiki/Daniel_Weinreb)?,?[Daniel G. Bobrow](http://en.wikipedia.org/wiki/Daniel_G._Bobrow),?[Linda G. DeMichiel](http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/d/DeMichiel:Linda_G=.html),?[Sonya E. Keene](http://www.amazon.com/Sonya-E.-Keene/e/B001ITVL6O),?[Gregor Kiczales](http://en.wikipedia.org/wiki/Gregor_Kiczales),?[Crispin Perdue](http://perdues.com/CrisPerdueResume.html),?[Kent M. Pitman](http://en.wikipedia.org/wiki/Kent_Pitman),?[Richard C. Waters](http://www.rcwaters.org/), 以及 John L White。[Common Lisp: the Language, 2nd Edition.](http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html)?Digital Press, Bedford (MA), 1990. ## 備注 1 (Notes 1)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-1 "Permalink to this headline") [McCarthy, John.](http://en.wikipedia.org/wiki/John_McCarthy_\(computer_scientist\))?[Recursive Functions of Symbolic Expressions and their Computation by Machine, Part I.](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.4527&rep=rep1&type=pdf)?CACM, 3:4 (April 1960), pp. 184-195. [McCarthy, John.](http://en.wikipedia.org/wiki/John_McCarthy_\(computer_scientist\))?[History of Lisp.](http://www-formal.stanford.edu/jmc/history/lisp/lisp.html)?In?[Wexelblat, Richard L.](http://en.wikipedia.org/wiki/Richard_Wexelblat)?(Ed.)?[Histroy of Programming Languages.](http://cs305.com/book/programming_languages/Conf-01/HOPLII/frontmatter.pdf)?Academic Press, New York, 1981, pp. 173-197. ## 備注 3 (Notes 3)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-3 "Permalink to this headline") [Brooks, Frederick P](http://en.wikipedia.org/wiki/Frederick_Brooks).?[The Mythical Man-Month](http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959). Addison-Wesley, Reading (MA), 1975, p. 16. Rapid prototyping is not just a way to write programs faster or better. It is a way to write programs that otherwise might not get written at all. Even the most ambitious people shrink from big undertakings. It’s easier to start something if one can convince oneself (however speciously) that it won’t be too much work. That’s why so many big things have begun as small things. Rapid prototyping lets us start small. ## 備注 4 (Notes 4)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-4 "Permalink to this headline") 同上, 第 i 頁。 ## 備注 5 (Notes 5)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-5 "Permalink to this headline") Murray, Peter and Linda.?[The Art of the Renaissance](http://www.amazon.com/Art-Renaissance-World/dp/0500200084). Thames and Hudson, London, 1963, p.85. ## 備注 5-2 (Notes 5-2)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-5-2 "Permalink to this headline") Janson, W.J.?[History of Art](http://www.amazon.com/History-Art-H-W-Janson/dp/0810934019/ref=sr_1_1?s=books&ie=UTF8&qid=1365042074&sr=1-1&keywords=History+of+Art), 3rd Edition. Abrams, New York, 1986, p. 374. The analogy applies, of course, only to paintings done on panels and later on canvases. Well-paintings continued to be done in fresco. Nor do I mean to suggest that painting styles were driven by technological change; the opposite seems more nearly true. ## 備注 12 (Notes 12)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-12 "Permalink to this headline") `car`?與?`cdr`?的名字來自最早的 Lisp 實現里,列表內部的表示法:car 代表“寄存器位址部分的內容”、cdr 代表“寄存器遞減部分的內容”。 ## 備注 17 (Notes 17)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-17 "Permalink to this headline") 對遞歸概念有困擾的讀者,可以查閱下列的書籍: Touretzky, David S.?[Common Lisp: A Gentle Introduction to Symbolic Computation](http://www.amazon.com/Common-Lisp-Introduction-Computation-Benjamin-Cummings/dp/B008T1B8WQ/ref=sr_1_3?s=books&ie=UTF8&qid=1365042108&sr=1-3&keywords=A+Gentle+Introduction+to+Symbolic+Computation). Benjamin/Cummings, Redwood City (CA), 1990, Chapter 8. Friedman, Daniel P., and Matthias Felleisen. The Little Lisper. MIT Press, Cambridge, 1987. 譯註:這本書有再版,可在[這裡](http://www.amazon.com/Common-LISP-Introduction-Symbolic-Computation/dp/0486498204/ref=sr_1_1?s=books&ie=UTF8&qid=1365042108&sr=1-1&keywords=A+Gentle+Introduction+to+Symbolic+Computation)找到。 ## 備注 26 (Notes 26)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-26 "Permalink to this headline") In ANSI Common Lisp there is also a?`lambda`?macro that allows you to write?`(lambda?(x)?x)`?for?`#'(lambda?(x)?x)`?. Since the use of this macro obscures the symmetry between lambda expressions and symbolic function names (where you still have to use sharp-quote), it yields a specious sort of elegance at best. ## 備注 28 (Notes 28)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-28 "Permalink to this headline") Gabriel, Richard P.?[Lisp Good News, Bad News, How to Win Big](http://www.dreamsongs.com/Files/LispGoodNewsBadNews.pdf)?*AI Expert*, June 1991, p.34. ## 備注 46 (Notes 46)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-46 "Permalink to this headline") Another thing to be aware of when using sort: it does not guarantee to preserve the order of elements judged equal by the comparison function. For example, if you sort?`(2?1?1.0)`?by?`<`?, a valid Common Lisp implementation could return either?`(1?1.0?2)`?or?`(1.0?1?2)`?. To preserve as much as possible of the original order, use instead the slower?`stable-sort`?(also destructive), which could only return the first value. ## 備注 61 (Notes 61)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-61 "Permalink to this headline") A lot has been said about the benefits of comments, and little or nothing about their cost. But they do have a cost. Good code, like good prose, comes from constant rewriting. To evolve, code must be malleable and compact. Interlinear comments make programs stiff and diffuse, and so inhibit the evolution of what they describe. ## 備注 62 (Notes 62)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-62 "Permalink to this headline") Though most implementations use the ASCII character set, the only ordering that Common Lisp guarantees for characters is as follows: the 26 lowercase letters are in alphabetically ascending order, as are the uppercase letters, and the digits from 0 to 9. ## 備注 76 (Notes 76)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-76 "Permalink to this headline") The standard way to implement a priority queue is to use a structure called a heap. See: Sedgewick, Robert.?[Algorithms](http://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/ref=sr_1_1?s=books&ie=UTF8&qid=1365042619&sr=1-1&keywords=algorithms+sedgewick). Addison-Wesley, Reading (MA), 1988. ## 備注 81 (Notes 81)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-81 "Permalink to this headline") The definition of progn sounds a lot like the evaluation rule for Common Lisp function calls (page 9). Though?`progn`?is a special operator, we could define a similar function: ~~~ (defun our-progn (ftrest args) (car (last args))) ~~~ This would be horribly inefficient, but functionally equivalent to the real?`progn`?if the last argument returned exactly one value. ## 備注 84 (Notes 84)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-84 "Permalink to this headline") The analogy to a lambda expression breaks down if the variable names are symbols that have special meanings in a parameter list. For example, ~~~ (let ((&key 1) (&optional 2))) ~~~ is correct, but the corresponding lambda expression ~~~ ((lambda (ftkey ftoptional)) 1 2) ~~~ is not. The same problem arises if you try to define do in terms of?`labels`?. Thanks to David Kuznick for pointing this out. ## 備注 89 (Notes 89)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-89 "Permalink to this headline") Steele, Guy L., Jr., and Richard P. Gabriel.?[The Evolution of Lisp](http://www.dreamsongs.com/Files/HOPL2-Uncut.pdf). ACM SIGPLANNotices 28:3 (March 1993). The example in the quoted passage was translated from Scheme into Common Lisp. ## 備注 91 (Notes 91)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-91 "Permalink to this headline") To make the time look the way people expect, you would want to ensure that minutes and seconds are represented with two digits, as in: ~~~ (defun get-time-string () (multiple-value-bind (s m h) (get-decoded-time) (format nil "~A:~2,,,'0@A:~2,,,'O@A" h m s))) ~~~ ## 備注 94 (Notes 94)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-94 "Permalink to this headline") In a letter of March 18 (old style) 1751, Chesterfield writes: “It was notorious, that the Julian Calendar was erroneous, and had overcharged the solar year with eleven days. Pope Gregory the Thirteenth corrected this error [in 1582]; his reformed calendar was immediately received by all the Catholic powers of Europe, and afterwards adopted by all the Protestant ones, except Russia, Sweden, and England. It was not, in my opinion, very honourable for England to remain in a gross and avowed error, especially in such company; the inconveniency of it was likewise felt by all those who had foreign correspondences, whether political or mercantile. I determined, therefore, to attempt the reformation; I consulted the best lawyers, and the most skillful astronomers, and we cooked up a bill for that purpose. But then my difficulty began; I was to bring in this bill, which was necessarily composed of law jargon and astronomical calculations, to both of which I am an utter stranger. However, it was absolutely necessary to make the House of Lords think that I knew something of the matter; and also to make them believe that they knew something of it themselves, which they do not. For my own part, I could just as soon have talked Celtic or Sclavonian to them, as astronomy, and they would have understood me full as well; so I resolved to do better than speak to the purpose, and to please instead of informing them. I gave them, therefore, only an historical account of calendars, from the Egyptian down to the Gregorian, amusing them now and then with little episodes; but I was particularly attentive to the choice of my words, to the harmony and roundness of my periods, to my elocution, to my action. This succeeded, and ever will succeed; they thought I informed them, because I pleased them; and many of them said I had made the whole very clear to them; when, God knows, I had not even attempted it.” See: Roberts, David (Ed.)?[Lord Chesterfield’s Letters](http://books.google.com.tw/books/about/Lord_Chesterfield_s_Letters.html?id=nFZP1WQ6XDoC&redir_esc=y). Oxford University Press, Oxford, 1992. ## 備注 95 (Notes 95)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-95 "Permalink to this headline") In Common Lisp, a universal time is an integer representing the number of seconds since the beginning of 1900\. The functions?`encode-universal-time`?and?`decode-universal-time`?translate dates into and out of this format. So for dates after 1900, there is a simpler way to do date arithmetic in Common Lisp: ~~~ (defun num->date (n) (multiple-value-bind (ig no re d m y) (decode-universal-time n) (values d m y))) (defun date->num (d m y) (encode-universal-time 1 0 0 d m y)) (defun date+ (d m y n) (num->date (+ (date->num d m y) (* 60 60 24 n)))) ~~~ Besides the range limit, this approach has the disadvantage that dates tend not to be fixnums. ## 備注 100 (Notes 100)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-100 "Permalink to this headline") Although a call to?`setf`?can usually be understood as a reference to a particular place, the underlying machinery is more general. Suppose that a marble is a structure with a single field called color: ~~~ (defstruct marble color) ~~~ The following function takes a list of marbles and returns their color, if they all have the same color, or n i l if they have different colors: ~~~ (defun uniform-color (1st) (let ((c (marble-color (car 1st)))) (dolist (m (cdr 1st)) (unless (eql (marble-color m) c) (return nil))) c)) ~~~ Although?`uniform-color`?does not refer to a particular place, it is both reasonable and possible to have a call to it as the first argument to?`setf`?. Having defined ~~~ (defun (setf uniform-color) (val 1st) (dolist (m 1st) (setf (marble-color m) val))) ~~~ we can say ~~~ (setf (uniform-color *marbles*) 'red) ~~~ to make the color of each element of?`*marbles*`?be red. ## 備注 100-2 (Notes 100-2)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-100-2 "Permalink to this headline") In older Common Lisp implementations, you have to use?`defsetf`?to define how a call should be treated when it appears as the first argument to setf. Be careful when translating, because the parameter representing the new value comes last in the definition of a function whose name is given as the second argument to?`defsetf`?. That is, the call ~~~ (defun (setf primo) (val 1st) (setf (car 1st) val)) ~~~ is equivalent to ~~~ (defsetf primo set-primo) ~~~ ~~~ (defun set-primo (1st val) (setf (car 1st) val)) ~~~ ## 備注 106 (Notes 106)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-106 "Permalink to this headline") C, for example, lets you pass a pointer to a function, but there’s less you can pass in a function (because C doesn’t have closures) and less the recipient can do with it (because C has no equivalent of apply). What’s more, you are in principle supposed to declare the type of the return value of the function you pass a pointer to. How, then, could you write?`map-int`?or?`filter`?, which work for functions that return anything? You couldn’t, really. You would have to suppress the type-checking of arguments and return values, which is dangerous, and even so would probably only be practical for 32-bit values. ## 備注 109 (Notes 109)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-109 "Permalink to this headline") For many examples of the versatility of closures, see: Abelson, Harold, and Gerald Jay Sussman, with Julie Sussman.[Structure and Interpretation of Computer Programs](http://mitpress.mit.edu/sicp/). MIT Press, Cambridge, 1985. ## 備注 109-2 (Notes 109-2)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-109-2 "Permalink to this headline") For more information about Dylan, see: Shalit, Andrew, with Kim Barrett, David Moon, Orca Starbuck, and Steve Strassmann.?[Dylan Interim Reference Manual](http://jim.studt.net/dirm/interim-contents.html). Apple Computer, 1994. At the time of printing this document was accessible from several sites, including?[http://www.harlequin.com](http://www.harlequin.com/)?and[http://www.apple.com](http://www.apple.com/). Scheme is a very small, clean dialect of Lisp. It was invented by Guy L. Steele Jr. and Gerald J. Sussman in 1975, and is currently defined by: Clinger, William, and Jonathan A. Rees (Eds.)?Revised4?Report on the Algorithmic Language Scheme. 1991. This report, and various implementations of Scheme, were at the time of printing available by anonymous FTP from swiss-ftp.ai.mit.edu:pub. There are two especially good textbooks that use Scheme—Structure and Interpretation (see preceding note) and: Springer, George and Daniel P. Friedman.?[Scheme and the Art of Programming](http://www.amazon.com/Scheme-Art-Programming-George-Springer/dp/0262192888). MIT Press, Cambridge, 1989. ## 備注 112 (Notes 112)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-112 "Permalink to this headline") The most horrible Lisp bugs may be those involving dynamic scope. Such errors almost never occur in Common Lisp, which has lexical scope by default. But since so many of the Lisps used as extension languages still have dynamic scope, practicing Lisp programmers should be aware of its perils. One bug that can arise with dynamic scope is similar in spirit to variable capture (page 166). You pass one function as an argument to another. The function passed as an argument refers to some variable. But within the function that calls it, the variable has a new and unexpected value. Suppose, for example, that we wrote a restricted version of mapcar as follows: ~~~ (defun our-mapcar (fn x) (if (null x) nil (cons (funcall fn (car x)) (our-mapcar fn (cdr x))))) ~~~ Then suppose that we used this function in another function,?`add-to-all`?, that would take a number and add it to every element of a list: ~~~ (defun add-to-all (1st x) (our-mapcar #'(lambda (num) (+ num x)) 1st)) ~~~ In Common Lisp this code works fine, but in a Lisp with dynamic scope it would generate an error. The function passed as an argument to?`our-mapcar`?refers to?`x`?. At the point where we send this function to?`our-mapcar`?,?`x`?would be the number given as the second argument to?`add-to-all`?. But where the function will be called, within?`our-mapcar`?,?`x`?would be something else: the list passed as the second argument to?`our-mapcar`?. We would get an error when this list was passed as the second argument to?`+`?. ## 備注 123 (Notes 123)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-123 "Permalink to this headline") Newer implementations of Common Lisp include avariable?`*read-eval*`?that can be used to turn off the?`#`?. read-macro. When calling?`read-from-string`?on user input, it is wise to bind?`*read-eval*`?to?`nil`?. Otherwise the user could cause side-effects by using?`#`?. in the input. ## 備注 125 (Notes 125)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-125 "Permalink to this headline") There are a number of ingenious algorithms for fast string-matching, but string-matching in text files is one of the cases where the brute-force approach is still reasonably fast. For more on string-matching algorithms, see: Sedgewick, Robert.?[Algorithms](http://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/ref=sr_1_1?s=books&ie=UTF8&qid=1365042619&sr=1-1&keywords=algorithms+sedgewick). Addison-Wesley, Reading (MA), 1988. ## 備注 141 (Notes 141)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-141 "Permalink to this headline") In 1984 CommonLisp, reduce did not take a?`:key`?argument, so?`random-next`?would be defined: ~~~ (defun random-next (prev) (let* ((choices (gethash prev *words*)) (i (random (let ((x 0)) (dolist (c choices) (incf x (cdr c))) x)))) (dolist (pair choices) (if (minusp (decf i (cdr pair))) (return (car pair)))))) ~~~ ## 備注 141-2 (Notes 141-2)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-141-2 "Permalink to this headline") In 1989, a program like Henley was used to simulate netnews postings by well-known flamers. The fake postings fooled a significant number of readers. Like all good hoaxes, this one had an underlying point. What did it say about the content of the original flames, or the attention with which they were read, that randomly generated postings could be mistaken for the real thing? One of the most valuable contributions of artificial intelligence research has been to teach us which tasks are really difficult. Some tasks turn out to be trivial, and some almost impossible. If artificial intelligence is concerned with the latter, the study of the former might be called artificial stupidity. A silly name, perhaps, but this field has real promise—it promises to yield programs that play a role like that of control experiments. Speaking with the appearance of meaning is one of the tasks that turn out to be surprisingly easy. People’s predisposition to find meaning is so strong that they tend to overshoot the mark. So if a speaker takes care to give his sentences a certain kind of superficial coherence, and his audience are sufficiently credulous, they will make sense of what he says. This fact is probably as old as human history. But now we can give examples of genuinely random text for comparison. And if our randomly generated productions are difficult to distinguish from the real thing, might that not set people to thinking? The program shown in Chapter 8 is about as simple as such a program could be, and that is already enough to generate “poetry” that many people (try it on your friends) will believe was written by a human being. With programs that work on the same principle as this one, but which model text as more than a simple stream of words, it will be possible to generate random text that has even more of the trappings of meaning. For a discussion of randomly generated poetry as a legitimate literary form, see: Low, Jackson M. Poetry, Chance, Silence, Etc. In Hall, Donald (Ed.) Claims for Poetry. University of Michigan Press, Ann Arbor, 1982\. You bet. Thanks to the Online Book Initiative, ASCII versions of many classics are available online. At the time of printing, they could be obtained by anonymous FTP from ftp.std.com:obi. See also the Emacs Dissociated Press feature, which uses an equivalent algorithm to scramble a buffer. ## 備注 150 (Notes 150)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-150 "Permalink to this headline") 下面這個函數會顯示在一個給定實現中,16 個用來標示浮點表示法的限制的全局常量: ~~~ (defun float-limits () (dolist (m '(most least)) (dolist (s '(positive negative)) (dolist (f '(short single double long)) (let ((n (intern (string-upcase (format nil "~A-~A-~A-float" m s f))))) (format t "~30A ~A ~%" n (symbol-value n))))))) ~~~ ## 備注 164 (Notes 164)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-164 "Permalink to this headline") [快速排序演算法](http://zh.wikipedia.org/zh-cn/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F)由[霍爾](http://zh.wikipedia.org/zh-cn/%E6%9D%B1%E5%B0%BC%C2%B7%E9%9C%8D%E7%88%BE)于 1962 年發(fā)表,并被描述在 Knuth, D. E.?*Sorting and Searching.*?Addison-Wesley, Reading (MA), 1973.一書中。 ## 備注 173 (Notes 173)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-173 "Permalink to this headline") [Foderaro, John K. Introduction to the Special Lisp Section. CACM 34:9 (Setember 1991), p.27](http://www.informatik.uni-trier.de/~ley/db/journals/cacm/cacm34.html) ## 備注 176 (Notes 176)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-176 "Permalink to this headline") 關于 CLOS 更詳細的信息,參考下列書目: Keene, Sonya E.?[Object Oriented Programming in Common Lisp](http://en.wikipedia.org/wiki/Object-Oriented_Programming_in_Common_Lisp:_A_Programmer's_Guide_to_CLOS)?, Addison-Wesley, Reading (MA), 1989 Kiczales, Gregor, Jim des Rivieres, and Daniel G. Bobrow.?[The Art of the Metaobject Protocol](http://en.wikipedia.org/wiki/The_Art_of_the_Metaobject_Protocol)?MIT Press, Cambridge, 1991 ## 備注 178 (Notes 178)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-178 "Permalink to this headline") 讓我們再回放剛剛的句子一次:*我們甚至不需要看程序中其他的代碼一眼,就可以完成種種的改動。*這個想法或許對某些讀者聽起來擔憂地熟悉。這是寫出[面條式代碼](http://zh.wikipedia.org/wiki/%E9%9D%A2%E6%9D%A1%E5%BC%8F%E4%BB%A3%E7%A0%81)的食譜。 面向對象模型使得通過一點一點的來構造程序變得簡單。但這通常意味著,在實踐上它提供了一種有結構的方法來寫出面條式代碼。這不一定是壞事,但也不會是好事。 很多現實世界中的代碼是面條式代碼,這也許不能很快改變。針對那些終將成為面條式代碼的程序來說,面向對象模型是好的:它們最起碼會是有結構的面條。但針對那些也許可以避免誤入崎途的程序來說,面向對象抽象只是更加危險的,而不是有用的。 ## 備注 183 (Notes 183)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-183 "Permalink to this headline") When an instance would inherit a slot with the same name from several of its superclasses, the instance inherits a single slot that combines the properties of the slots in the superclasses. The way combination is done varies from property to property: 1. The?`:allocation`?,?`:initform`?(if any), and?`:documentation`?(if any), will be those of the most specific classes. 2. The?`:initargs`?will be the union of the?`:initargs`?of all the superclasses. So will the?`:accessors`?,?`:readers`?, and`:writers`?, effectively. 3. The?`:type`?will be the intersection of the?`:types`?of all the superclasses. ## 備注 191 (Notes 191)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-191 "Permalink to this headline") You can avoid explicitly uninterning the names of slots that you want to be encapsulated by using uninterned symbols as the names to start with: ~~~ (progn (defclass counter () ((#1=#:state :initform 0))) (defmethod increment ((c counter)) (incf (slot-value c '#1#))) (defmethod clear ((c counter)) (setf (slot-value c '#1#) 0))) ~~~ The?`progn`?here is a no-op; it is used to ensure that all the references to the uninterned symbol occur within the same expression. If this were inconvenient, you could use the following read-macro instead: ~~~ (defvar *symtab* (make-hash-table :test #'equal)) (defun pseudo-intern (name) (or (gethash name *symtab*) (setf (gethash name *symtab*) (gensym)))) (set-dispatch-macro-character #\# #\[ #'(lambda (stream char1 char2) (do ((acc nil (cons char acc)) (char (read-char stream) (read-char stream))) ((eql char #\]) (pseudo-intern acc))))) ~~~ Then it would be possible to say just: ~~~ (defclass counter () ((#[state] :initform 0))) (defmethod increment ((c counter)) (incf (slot-value c '#[state]))) (defmethod clear ((c counter)) (setf (slot-value c '#[state]) 0)) ~~~ ## 備注 204 (Notes 204)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-204 "Permalink to this headline") 下面這個宏將新元素推入二叉搜索樹: ~~~ (defmacro bst-push (obj bst <) (multiple-value-bind (vars forms var set access) (get-setf-expansion bst) (let ((g (gensym))) `(let* ((,g ,obj) ,@(mapcar #'list vars forms) (,(car var) (bst-insert! ,g ,access ,<))) ,set)))) ~~~ ## 備注 213 (Notes 213)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-213 "Permalink to this headline") Knuth, Donald E.?[Structured Programming with goto Statements.](http://sbel.wisc.edu/Courses/ME964/Literature/knuthProgramming1974.pdf)?*Computing Surveys*?, 6:4 (December 1974), pp. 261-301 ## 備注 214 (Notes 214)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-214 "Permalink to this headline") Knuth, Donald E.?[Computer Programming as an Art](http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CC4QFjAB&url=http%3A%2F%2Fawards.acm.org%2Fimages%2Fawards%2F140%2Farticles%2F7143252.pdf&ei=vl9VUIWBIOWAmQWQu4FY&usg=AFQjCNHAgYS4PiHA0OfgOdiDfPU2i6HAmw&sig2=zZalr-ife4DB4BR2CPORBQ)?*In ACM Turing Award Lectures: The First Twenty Years.*?ACM Press, 1987 This paper and the preceding one are reprinted in: Knuth, Donald E. Literate Programming. CSLI Lecture Notes #27, Stanford University Center for the Study of Language and Information, Palo Alto, 1992. ## 備注 216 (Notes 216)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-216 "Permalink to this headline") Steele, Guy L., Jr. Debunking the “Expensive Procedure Call” Myth or, Procedural Call Implementations Considered Harmful or, LAMBDA: The Ultimate GOTO. Proceedings of the National Conference of the ACM, 1977, p. 157. Tail-recursion optimization should mean that the compiler will generate the same code for a tail-recursive function as it would for the equivalent?`do`. The unfortunate reality, at least at the time of printing, is that many compilers generate slightly faster code for?`do`s. ## 備注 217 (Notes 217)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-217 "Permalink to this headline") For some examples of calls to disassemble on various processors, see: Norvig, Peter. Paradigms ofArtificial Intelligence Programming: Case Studies in Common Lisp. Morgan Kaufmann, San Mateo (CA), 1992. ## 備注 218 (Notes 218)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-218 "Permalink to this headline") A lot of the increased popularity of object-oriented programming is more specifically the increased popularity of C++, and this in turn has a lot to do with typing. C++ gives you something that seems like a miracle in the conceptual world of C: the ability to define operators that work for different types of arguments. But you don’t need an object-oriented language to do this—all you need is run-time typing. And indeed, if you look at the way people use C++, the class hierarchies tend to be flat. C++ has become so popular not because people need to write programs in terms of classes and methods, but because people need a way around the restrictions imposed by C’s approach to typing. ## 備注 219 (Notes 219)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-219 "Permalink to this headline") Macros can make declarations easier. The following macro expects a type name and an expression (probably numeric), and expands the expression so that all arguments, and all intermediate results, are declared to be of that type. If you wanted to ensure that an expression e was evaluated using only fixnum arithmetic, you could say?`(with-type?fixnum?e)`. ~~~ (defmacro with-type (type expr) `(the ,type ,(if (atom expr) expr (expand-call type (binarize expr))))) (defun expand-call (type expr) `(,(car expr) ,@(mapcar #'(lambda (a) `(with-type ,type ,a)) (cdr expr)))) (defun binarize (expr) (if (and (nthcdr 3 expr) (member (car expr) '(+ - * /))) (destructuring-bind (op a1 a2 . rest) expr (binarize `(,op (,op ,a1 ,a2) ,@rest))) expr)) ~~~ The call to binarize ensures that no arithmetic operator is called with more than two arguments. As the Lucid reference manual points out, a call like ~~~ (the fixnum (+ (the fixnum a) (the fixnum b) (the fixnum c))) ~~~ still cannot be compiled into fixnum additions, because the intermediate results (e.g. a + b) might not be fixnums. Using?`with-type`?, we could duplicate the fully declared version of?`poly`?on page 219 with: ~~~ (defun poly (a b x) (with-type fixnum (+ (* a (expt x 2)) (* b x)))) ~~~ If you wanted to do a lot of fixnum arithmetic, you might even want to define a read-macro that would expand into a`(with-type?fixnum?...)`?. ## 備注 224 (Notes 224)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-224 "Permalink to this headline") 在許多 Unix 系統里,?`/usr/dict/words`?是個合適的單詞文件。 ## 備注 226 (Notes 229)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-229 "Permalink to this headline") T is a dialect of Scheme with many useful additions, including support for pools. For more on T, see: Rees, Jonathan A., Norman I. Adams, and James R. Meehan. The T Manual, 5th Edition. Yale University Computer Science Department, New Haven, 1988. The T manual, and T itself, were at the time of printing available by anonymous FTP from hing.lcs.mit.edu:pub/t3.1 . ## 備注 229 (Notes 229)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#id8 "Permalink to this headline") The difference between specifications and programs is a difference in degree, not a difference in kind. Once we realize this, it seems strange to require that one write specifications for a program before beginning to implement it. If the program has to be written in a low-level language, then it would be reasonable to require that it be described in high-level terms first. But as the programming language becomes more abstract, the need for specifications begins to evaporate. Or rather, the implementation and the specifications can become the same thing. If the high-level program is going to be re-implemented in a lower-level language, it starts to look even more like specifications. What Section 13.7 is saying, in other words, is that the specifications for C programs could be written in Lisp. ## 備注 230 (Notes 230)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-230 "Permalink to this headline") Benvenuto Cellini’s story of the casting of his Perseus is probably the most famous (and the funniest) account of traditional bronze-casting: Cellini, Benvenuto. Autobiography. Translated by George Bull, Penguin Books, Harmondsworth, 1956. ## 備注 239 (Notes 239)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-239 "Permalink to this headline") Even experienced Lisp hackers find packages confusing. Is it because packages are gross, or because we are not used to thinking about what happens at read-time? There is a similar kind of uncertainty about def macro, and there it does seem that the difficulty is in the mind of the beholder. A good deal of work has gone into finding a more abstract alternative to def macro. But def macro is only gross if you approach it with the preconception (common enough) that defining a macro is like defining a function. Then it seems shocking that you suddenly have to worry about variable capture. When you think of macros as what they are, transformations on source code, then dealing with variable capture is no more of a problem than dealing with division by zero at run-time. So perhaps packages will turn out to be a reasonable way of providing modularity. It is prima facie evidence on their side that they resemble the techniques that programmers naturally use in the absence of a formal module system. ## 備注 242 (Notes 242)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-242 "Permalink to this headline") It might be argued that?`loop`?is more general, and that we should not define many operators to do what we can do with one. But it’s only in a very legalistic sense that loop is one operator. In that sense,?`eval`?is one operator too. Judged by the conceptual burden it places on the user,?`loop`?is at least as many operators as it has clauses. What’s more, these operators are not available separately, like real Lisp operators: you can’t break off a piece of loop and pass it as an argument to another function, as you could?`map-int`?. ## 備注 248 (Notes 248)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-248 "Permalink to this headline") 關于更深入講述邏輯推論的資料,參見:[Stuart Russell](http://www.cs.berkeley.edu/~russell/)?及?[Peter Norvig](http://www.norvig.com/)?所著的?[Artificial Intelligence: A Modern Approach](http://aima.cs.berkeley.edu/)。 ## 備注 273 (Notes 273)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-273 "Permalink to this headline") Because the program in Chapter 17 takes advantage of the possibility of having a?`setf`?form as the first argument to`defun`?, it will only work in more recent Common Lisp implementations. If you want to use it in an older implementation, substitute the following code in the final version: ~~~ (proclaim '(inline lookup set-lookup)) (defsetf lookup set-lookup) (defun set-lookup (prop obj val) (let ((off (position prop (layout obj) :test #'eq))) (if off (setf (svref obj (+ off 3)) val) (error "Can't set ~A of ~A." val obj)))) (defmacro defprop (name &optioanl meth?) `(progn (defun ,name (obj &rest args) ,(if meth? `(run-methods obj ',name args) `(rget ',name obj nil))) (defsetf ,name (obj) (val) `(setf (lookip ',',name ,obj) ,val)))) ~~~ ## 備注 276 (Notes 276)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-276 "Permalink to this headline") If?`defmeth`?were defined as ~~~ (defmacro defmeth (name obj parms &rest body) (let ((gobj (gensym))) `(let ((,gobj ,obj)) (setf (gethash ',name ,gobj) #'(lambda ,parms (labels ((next () (funcall (get-next ,gobj ',name) ,@parms))) ,@body)))))) ~~~ then it would be possible to invoke the next method simply by calling?`next`?: ~~~ (defmeth area grumpy-circle (c) (format t "How dare you stereotype me!""/,") (next)) ~~~ ## 備注 284 (Notes 284)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-284 "Permalink to this headline") For really fast access to slots we would use the following macro: ~~~ (defmacro with-slotref ((name prop class) &rest body) (let ((g (gensym))) `(let ((,g (+ 3 (position ,prop (layout ,class) :test #'eq)))) (macrolet ((,name (obj) `(svref ,obj ,',g))) ,@body)))) ~~~ It defines a local macro that refers directly to the vector element corresponding to a slot. If in some segment of code you wanted to refer to the same slot in many instances of the same class, with this macro the slot references would be straight?`svref`s. For example, if the balloon class is defined as follows, ~~~ (setf balloon-class (class nil size)) ~~~ then this function pops (in the old sense) a list of ballons: ~~~ (defun popem (ballons) (with-slotref (bsize 'size balloon-class) (dolist (b ballons) (setf (bsize b) 0)))) ~~~ ## 備注 284-2 (Notes 284-2)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-284-2 "Permalink to this headline") Gabriel, Richard P.?[Lisp Good News, Bad News, How to Win Big](http://www.dreamsongs.com/Files/LispGoodNewsBadNews.pdf)?*AI Expert*, June 1991, p.35. 早在 1973 年,?[Richard Fateman](http://en.wikipedia.org/wiki/Richard_Fateman)?已經能證明在?[PDP-10](http://en.wikipedia.org/wiki/PDP-10)?主機上,?[MacLisp](http://en.wikipedia.org/wiki/Maclisp)?編譯器比制造商的 FORTRAN 編譯器,產生出更快速的代碼。 **譯注:**?[該篇 MacLisp 編譯器在 PDP-10 可產生比 Fortran 快的代碼的論文在這可以找到](http://dl.acm.org/citation.cfm?doid=1086803.1086804) ## 備注 399 (Notes 399)[](http://acl.readthedocs.org/en/latest/zhCN/notes-cn.html#notes-399 "Permalink to this headline") It’s easiest to understand backquote if we suppose that backquote and comma are like quote, and that?```,x``?simply expands into?`(bq?(comma?x))`?. If this were so, we could handle backquote by augmenting?`eval`?as in this sketch: ~~~ (defun eval2 (expr) (case (and (consp expr) (car expr)) (comma (error "unmatched comma")) (bq (eval-bq (second expr) 1)) (t (eval expr)))) (defun eval-bq (expr n) (cond ((atom expr) expr) ((eql (car expr) 'comma) (if (= n 1) (eval2 (second expr)) (list 'comma (eval-bq (second expr) (1- n))))) ((eql (car expr) 'bq) (list 'bq (eval-bq (second expr) (1+ n)))) (t (cons (eval-bq (car expr) n) (eval-bq (cdr expr) n))))) ~~~ In?`eval-bq`?, the parameter?`n`?is used to determine which commas match the current backquote. Each backquote increments it, and each comma decrements it. A comma encountered when n = 1 is a matching comma. Here is the example from page 400: ~~~ > (setf x 'a a 1 y 'b b 2) 2 > (eval2 '(bq (bq (w (comma x) (comma (comma y)))))) (BQ (W (COMMA X) (COMMA B))) > (eval2 *) (W A 2) ~~~ At some point a particularly remarkable molecule was formed by accident. We will call it the Replicator. It may not necessarily have been the biggest or the most complex molecule around, but it had the extraordinary property of being able to create copies of itself. Richard Dawkins The Selfish Gene We shall first define a class of symbolic expressions in terms of ordered pairs and lists. Then we shall define five elementary functions and predicates, and build from them by composition, conditional expressions, and recursive definitions an extensive class of functions of which we shall give a number of examples. We shall then show how these functions themselves can be expressed as symbolic expressions, and we shall define a universal function apply that allows us to compute from the expression for a given function its value for given arguments. John McCarthy Recursive Functions of Symbolic Expressions and their Computation by Machine, Part I
国产精品首页在线播放| 成年美女黄色av网站| 久久久久久久久久性| 中文字幕亚洲欧美国产| 精品97人妻无码中文永久| 国产欧美日韩不卡在线观看| 亚洲 自拍偷拍 欧美| 精品人妻一区二区三区线国色天香| 欧美日韩激情在线视频观看| 亚洲天堂性色综合| 亚洲综合色激情五月| 91九色蝌蚪熟妇出轨| 亚洲 免费在线视频| 欧美视频 亚洲视频| wwxxx中文字幕| 欧美人妻a∨中文字幕在线 | 国产亚洲天堂sss| 久久久久中文字幕免费久久久久久| 中文字幕一线一区和二区| 日韩视频在线播放一区二区| 激情亚洲一区蜜桃在线| 欧美又色又爽又黄又粗暴| 97色视频在线看视频| 牛牛成人手机视频在线| 日韩精品久久久久久久软件| 亚洲乳大丰满中文字幕少妇av| 久久精品香蕉绿巨人| 亚洲av亚洲av亚洲| 美女18禁久久久久麻豆| 亚洲一级av大片| 久久久久久精品日韩| 国产成人av吴梦梦视频| 色婷婷久久久swag精品| 最新精品成人在线| 亚洲成人久久久久| 亚洲熟妇在线观看一区二区| 亚洲不卡一区av| 成人免费观看av毛片| 日韩av在线观看免费看看| 欧美一区二区精品人妻免费视频| 亚洲av亚洲av亚洲| 日韩美女夜夜爽av| 人人妻人人澡人人爽dv| 日韩av一区二区三区久久久 | 久久这里只有欧美精品| 婷婷基地中文字幕| 日韩a毛片视频免费看| 欧美精品一区二区在线视频| www日本不卡一二三区| 亚洲欧洲国产一区二区| 99久久窝窝午夜影视| 99久久国语露脸精彩对白| 熟女大白屁股在线播放| 5858s在线视频| 日韩国产精品电影网| 蜜臀av 麻豆av| 婷婷 少妇 av| 亚洲国模私拍视频| 国产精品久久久久成人片| 中文字幕亚洲欧美国产| 日韩av手机在线电影| 精品人妻二区中文字幕| 国产91久久精品一区二区老| 91天仙tv国产福利精品| 亚洲精品,欧美日韩| 久久久久久久久久无吗 | 国产亚洲精久久久久久无码色戒| 99re6热在线视频免费观看| 日韩精品福利性无码专区| 国产亚洲av免费一区二区| 日韩精品综合免费视频| 五月婷久久综合狠狠爱97| 日韩中文字幕视频在线播放| 精品国产乱码久久久人妻| 色亚洲天堂色派对欧美色| 日韩欧美一级在线视频| 少妇人妻一区2区中文字幕| 国产99精品久久久久久圆免看片| 亚洲激情有码一区二区| 国产精品久久精品一区二区三区| 在线不卡日韩视频播放| 最新偷窥偷拍免费视频观看| japanese 在线中文字幕| 精品日韩色国产在线观看| 成人国产一区二区免费| 精品国产乱码久久久久夜深| 青青草青青操在线播放| 欧美日韩国产一级一顶级| 国产天堂avwww| 久久国产精品久久伊人麻豆 | 91在线精品国自产拍| 日韩午夜激情福利免费| 91久久婷婷国产麻豆精品| 少妇一区二区在线免费观看| www.成人国产精品| 国产精品久久久久久久久久网站| 五月激情爱爱婷婷| 青青草青青操在线播放| 777亚洲精品乱码久久| 麻豆免费国产福利免费国产福利| 四十路av熟女俱乐部| 日本中文字幕一区二区在线视频| 青青草久久大香蕉| youwu视频在线| 人妻人人揉人人澡人人| 亚洲精品,欧美日韩| 久久久久久少妇被弄高潮| 一级片一级片久久精品电影网电影| 亚洲激情有码一区二区| 精品人妻一区二区三区线国色天香| 日韩美女夜夜爽av| 91麻豆精品91久久久久同性| 美日韩美女三级电影| 久久在线人妻熟女高清完整版| 亚洲成人影院中文字幕| 精品久久久久久18免费网站| 日本加勒比中文字幕久久| 亚洲天堂av电影免费在线| 日韩欧美国产成人一区| 五月天丁花香婷婷| 日韩国产精品电影网| 97人人人欧美人人妻人人| 婷婷激情免费视频| 5858s在线视频| 亚洲天堂av电影| 国产一区二区三区黄色| 新版天堂av资源在线| 日韩手机在线一区二区三区| 久久精品琪琪男人的天堂| 欧美中文字幕在线一区| japanese 在线中文字幕| 国产99成人自拍视频| 丰满人妻av白石茉莉奈电影| 蜜久久久91精品人妻| 少妇惨叫久久久久久久| 亚洲综合色激情五月| 一级片一级片久久精品电影网电影 | 欧美中文字幕久久久| 97色视频在线看视频| 五月天色婷婷av在线| 99精品高清免费在线视频| 91精品乱码久久久久久| 天堂av最新资源在线| 最新偷窥偷拍免费视频观看| 在线免费av大香蕉| 欧美aⅴ一区二区三区| 日韩电影黄色免费| 亚洲精品久久第一页| 日韩福利视频在线看| 蜜臀av 麻豆av| 国语一区二区在线观看| 国产清纯白嫩美女无套| 久久精品国产91久久麻豆自制| 国产一级淫片免费看久久| 热香蕉和冷香蕉功效一样吗| 熟女大白屁股在线播放| 亚洲欧洲国产一区二区| 久久综合中文字幕一区二区三区| 久久久亚洲精品久久仙| huangse网站在线观看| 久久综合久久综合大香蕉| 日本精品久久久久中人妻| 久久综合中文字幕一区二区三区 | 欧美激情 另类视频 亚洲| 日韩美女影院免费在线观看| 日本高清不卡视频在线播放| 最新偷窥偷拍免费视频观看| 日韩精品免费91aa| 中文字幕亚洲欧美国产| 成人午夜激情福利片| 亚洲女人老师毛茸茸| 99精品高清视频一区二区| 欧美一区二区三区aa大片| 亚洲伊人网在线播放| 91精品久久久久久五月天| 久久久久在线免费看| w疯狂的少妇2做爰韩国| 婷婷在线综合观看视频| 91制片在线观看视频| 国产精品久久久久成人片| 日韩精品少妇人妻熟女| 亚洲精品熟女中文字幕| 香蕉久久a v一区二区三区| 福利一福利二福利三| 欧美中文字幕视频网| 亚洲熟妇免费在线视频| 中文字幕+人妻熟女| 91精品久久久久久久久不卡网站| 午夜影院av在线| 人人妻人人澡人人爽国产一区| 亚洲成a人片7777| 另类h小视频在线观看| 秋霞电影韩国一区二区二区三区| 5858s在线视频| 午夜国产福利电影| 国产91色在线i免费| 五月爱婷婷六月丁香性| 超碰在线免费成人午夜剧场97| 日韩中文字幕有码人妻在线| 国产黄色主播网址大全在线播放 | 久久久国产一区二区视| 日本熟妇人妻在线| 日韩av在线点播| 五月婷婷久久久久久久久| 亚洲一区二区三二区厕所偷拍| 国产青青91av在线视频| 久久久久久久久久久免费网| 麻豆在线视频看片免费| 日日碰狠狠躁久久躁一区二区| 日韩乱妇乱女熟妇熟女网红| 日韩电影黄色免费| 国产天堂avwww| 日韩成视频在线播放| 天天射天天舔天天射| 安斋拉拉中文字幕在线| 大香蕉久草网一区二区三区| 日韩一区二区三区乱码| 福利日韩精品中文字幕专区| 91九色porny国产视频| 久久久久国产亚洲av麻豆| 蜜臀av 麻豆av| 精品一区二区三区蜜桃臀的优势| 玖玖资源站中文字幕一区二区| 视频一区视频二区三区| 日韩av中文字幕一区| 欧美老熟妇重口另类xxx| 厕所偷拍视频一区二区三区| 视频在线观看黄页| 四虎网站免费av| 日韩手机无线看视频| 国产精品久久久久一区二区| 久久精品 中文字幕| 福利一福利二福利三| 麻豆在线视频看片免费| 亚洲一区视频大全| 伊人久久热青青草| 日韩不卡一级成人免费视频| 亚洲伊人网在线观看| 日本18禁片免费久久| 国产精品久久久久一区二区| 日韩av网址在线播放| 欧美激情欧美情色成人在线| 伊人久久婷婷av| 国产成人av吴梦梦视频| 日韩精品综合免费视频| 大香蕉久草网一区二区三区| wwxxx中文字幕| 色婷婷中文字幕基地| 久久这里只有欧美精品| 91成人国产精品视频| 成年美女黄色av网站| 91精品一二三区在线观看 | 91综合精品国产丝袜长腿| 97人妻中文字幕精品视频| 五月天色图婷婷亚洲| 成年人免费看黄色片| 亚洲激情熟女色图| 中文字幕人妻一区二区在线看| 日本18禁片免费久久| 在线人妻国产精品| 精品一区二区三区四区人妻69 | 熟女大白屁股在线播放| 五月黄色激情视频| 激情五月天狠婷婷| 精品国产丝袜久久久一区二区| 婷婷 少妇 av| 久久精品中文字幕av| 精品一区二区三区四区日产| 久久久久999蜜桃视频| 欧美一区二区三区成人免费看| 人妻人人揉人人澡人人| 久久婷婷激情综合色综合俺也去| 久久精品久久一区二区三区| 美国av 在线播放| 人妻丰满一区二区三区| 人人妻人人爱碰千| 日日夜夜夜视频伊人久久| 亚洲视频欧美视频另类| 久久久96精品久久久| 国产一区二区不卡91| 亚洲 免费 在线 观看| 国产av一区二区三区天美| 亚洲一级av大片| 久久久97精品国产| 久久久国产一区二区视| 99九九99九九热视频| 三级亚洲天堂亚洲天堂| 青青91免费视频| 伊人久久热青青草| 综合激情伊人久久| 国产精品色呦呦视频免费看| 91九色蝌蚪熟妇出轨| 欧美日韩在线卡一卡二卡三| 日本久久久大片中文字幕| 亚洲国产精品久久久久婷婷av| 久久九特黄的免费大片| 国产精品久久久久久久久久69| 欧美日本韩国乱搞视频| 久久久97精品国产| 国产一区二中文字幕在线免费观看 | 欧美一区二区三区,| 国产清纯白嫩美女无套| 亚洲国产一成人久久精品| 国语一区二区在线观看| 成人黄视频在线播放| 久久国产精品色av免费看| 色综合色综合色综合久久| 亚洲狠狠久久综合一区| 天天摸天天舔天天爱| 日本少妇人妻xxxx| 午夜三级中文字幕视频网址大全| 50岁老熟女一区二区三区| 天天插天天日天天舔| 欧美激情欧美情色成人在线| 91天仙tv国产福利精品| 久久国产精品久久伊人麻豆| 成人精品1024欧美日韩| av在线免费播放成人| 成人黄色午夜污网站在线观看| 国产av一区二区三区天美| 国语黄色淫秽录像带| 久久爱免费视频16| 国产精品首页在线播放| www日本不卡一二三区| 欧美人妻系列,中文字幕| 亚洲熟妇在线观看一区二区| 精品国产一区二区三区制服| 99爱99久久久久久久久久| 91成人国产精品视频| 少妇惨叫久久久久久久| 青青草青青操在线播放| 久久久久久少妇被弄高潮| 在线人妻国产精品| 日韩欧美综合一区二区在线| 国产精品一二三四在线| 欧美一区二区三区视频午夜| 人妻日韩精品在线观看视频| 视频在线观看黄页| 日韩久久久三级电影| 搡老熟女一区二区三区老熟女| 日韩av电影免费在线播放| 四十路av熟女俱乐部| 欧美人妻激情中文视频| 久久2020精品免费网站| 中文字幕熟女人妻在线网页| 人妻人人揉人人澡人人| 人妻夜夜爽天天爽麻豆| 人妻一区二区三区巨免费| 亚洲最大成人网一区二区三区| 国产一区二中文字幕在线免费观看| 国产麻豆一级美女精品| 久久综合中文字幕一区二区三区| 日韩少妇视频在线直播| 天天操天天爽天天舔天天操一操| 91人妻人人妻人人爽| 亚洲激情有码一区二区| 亚洲图色91东京热| 少妇高潮一区二区三区99欧美| 亚洲尺码和欧洲尺码av| 国产亚洲精久久久久久无码色戒| 国产自拍 偷拍 在线| 亚洲熟妇av日韩熟妇在线| 搡老熟女一区二区三区四区视频| laoyawo老鸭窝在线视频| 久久免费视频观看99| 激情亚洲一区蜜桃在线| 中文在线字幕a在线| 999热精品在线观看| 亚洲一级av大片| 另类蜜桃刺激视频在线观看| 色噜噜狠狠躁夜夜躁| 亚洲自拍偷拍色图区| 久久久精品国产亚洲av网深田| 亚洲欧美日韩一区17c| 女人体内射精一区二区三区 | 久久一本麻豆天美欧美日韩| 2020日韩中文字幕| 亚洲av微乳在线| 日韩亚洲丝袜系列| 亚洲欧美日韩一二三四五六七区| av久久伊人精品中文字幕| 久久久久中文字幕免费久久久久久 | 97成人免费碰碰碰视频| 久久国产经典三级av| 91免费版下载成人| 玖玖资源站中文字幕一区二区| 一区二区三区精品乱子伦……| 少妇人妻给我内射视频| 精品久久久久久999| 国产成人无码AA精品一区| 久久五月天天婷婷激情综合| 男人的天堂久久久亚洲| 一本色道久久亚洲综合精品蜜桃| 欧美一区二区三日韩| 精品一区二区三区四区日产| 欧美日韩国产一级一顶级| 国产亚洲欧美日韩在线首页| 成年人在线免费观看黄色片| 欧美日韩久久久久久精品| 人妻精品无码一区二区三区| 欧美一区二区三区激情无套| 少妇人妻视频在线观看| 人妻一区二区三区巨免费| 91亚洲国产成人久久精品app | 日韩美女在线视频一区| 天天色天天干天天舔| 亚洲女人中文字幕在线| 日本av男优巧克力| 精品激情视频在线免费观看| 91丝袜放荡丝袜脚交| 91免费av在线观看| 蜜桃久久久一区二区三区| 篠田优中文字幕在线播| 亚洲日韩视频高清在线观看| 久久99精品国产91| 免费观看a级在线视频| 玖玖玖玖日在线视频| japanese 在线中文字幕| 97网视频免费在线观看| 亚洲乱精品中文字字幕| 中文字幕亚洲资源天堂| 麻豆中文字幕av在线| 天天做天天舔天天射| 婷婷在线综合观看视频| 久久成人福利视频资源| 日本少妇人妻xxxx| 五月婷婷久久久久久久久| 中文在线字幕a在线| 日产av一区二区在线观看| 激情黄色开心五月天| 日本熟妇乱子伦a片在线观看 | 国产一区二区三区四区中文字幕 | 99精品视频在线看17| 婷婷激情免费视频| 久久久久999蜜桃视频| 秋霞电影韩国一区二区二区三区| 亚州av一区二区三区.| 精品99国内中文字幕| 中文字幕av久久爽爽| 高清不卡av在线网| 亚洲综合色激情五月| 中文在线字幕a在线| 91国产视频网站在线观看| 精品国产精品视频免费在线观看| 天天色综合天天射综合| 中文字幕av最新资源| 日韩国产91综合精品| 日韩 美女 在线观看| huangse网站在线观看| 精品欧美乱子伦一区二区三区 | 国产丝袜香蕉在线观看| 亚洲熟妇免费在线视频| 少妇人妻一区2区中文字幕| 日韩av电影免费在线播放| 久久精品国产av网| 久久一本麻豆天美欧美日韩| 一区二区三区内射美女毛片| 国产91熟女免费视频| 黑人操日本女人电影| 日韩毛片亚洲av| 免费av网站在线浏览| 中文字幕人妻互换久久视频| 亚洲天堂黄色免费| 日韩精品综合免费视频| 久久人妻少妇嫩草av蜜桃动态图| 色综合色综合色综合久久| 久久久久久久久久久免费网| 99久久精品国产777| 亚洲欧美日韩一区二区三区不卡| 亚洲 免费在线视频| 免费麻豆国产一区二区三区| 欧美中文字幕在线一区| 日本女优和黑人的| 99久久国语露脸精彩对白| 国产日韩欧美春色另类小说| 欧美日韩国产色图视频| 1024 国产高清の最新合集| 色视频精品视频在线观看| 熟女少妇一区二区精品| 精品一区二区三区四区人妻69| 中文字幕日韩天堂| 日韩av网址在线播放| 日本av男优巧克力| 亚洲青青青国产观看视频| 国产aⅴ爽av久久久久成| 久久久久国产麻豆婷婷| 中文字幕av久久爽爽| 日韩a视频在线播放视频| 亚洲国模私拍视频| 欧美高清在线视频99| 91大神精品大长腿在线观看| 亚洲激情网在线播放| 中文字幕亚洲专区欧美| 久久精品国产亚洲av不卡性色| 日韩人妻插舔激情午夜| 国产精品久久精品一区二区三区| 日本高清理论片中文字幕| youwu视频在线| 精品国产麻豆免费成人网| 在线观看日韩美视频一区| av日韩在线有码a区| 亚洲一区视频大全| 亚洲青青青国产观看视频| 色丁香婷婷综合久久| 青娱乐国产视频盛| 男人的天堂久久精平| 天堂av最新资源在线| 蜜臀av日韩特黄大片| 亚洲av综合色区手机| 欧美视频 亚洲视频| 青青草成人影院在线观看| 色婷婷精品午夜在线播放| 亚洲天堂av电影免费在线| 欧美日韩精品亚洲欧美| 免费精品国产日韩热久久| 99爱99久久久久久久久久| 久久婷婷亚洲中文一区二区 | 91亚洲精品成人在线| 人妻精品少妇嫩草麻豆| 亚洲欧洲偷拍自拍| 久久蜜桃视频亚洲精品| 久久精品国产亚洲av久丨| 久久99国产综合精品无码免费| 亚洲熟妇免费在线视频| 97人人人欧美人人妻人人| 婷婷亚洲天堂中文字幕| 亚洲少妇黄色一级片| 人妻熟 中文字幕| 国产又大又长又粗又硬免费视频| 午夜精品福利小视频| 色婷婷国产熟妇人妻露脸| 久久久精品蜜桃在线| 亚洲欧美在线视频播放| 骚妻少妇一区二区| 久久久久在线免费看| 精品国产久久久久99| 黄色片一级美女黄色片| 国产欧美日韩亚洲另类第一第二页 | 日韩不卡高清视频| 久久亚洲精品日韩高清| 五月爱婷婷六月丁香性| 亚洲av不卡码在线看| 亚洲欧美在线视频播放| 久久精品琪琪男人的天堂| 91中日在线中文字幕| 国产欧美日韩亚洲另类第一第二页 | 91亚洲精品成人在线| 国产精品久久久久久久久粉嫩av| 国产青青91av在线视频| 国产三级久久久999111| 欧美一区二区三区成人免费看 | 最新偷窥偷拍免费视频观看| 日韩欧美三级一区二区在线观看| a级黄片在线免费观看| 风间由美交换夫中文字幕| 久久视频黄色观看网站| 久久国产精品——国产精品| 久久久久久最新精品| 欧美日韩精品在线观看免费 | 日韩欧美三级一区二区在线观看| 97人妻中文字幕精品视频| 日本熟妇人妻在线| 99久久久99久久91熟女| 欧美日韩精品亚洲欧美| 亚洲乱精品中文字字幕| 熟女激情一区二区三区| 国产精品久久久久久吹吹潮| 国产成AV人片在线观看天堂无码| 日本老女人视频在线观看| 亚洲国产精品午夜av| 中文字幕在线视频亚洲| 色男人天堂东京热| av福利网站在线观看| 国产成人精品久久久久久蜜臀 | 99久久999久久久精品综合| 91一区二区三区精华液| 精品人妻一区二区三区线国色天香| 久久99永久免费看| 久久国产经典三级av| 最新美女激情av| 高清一区二区三区日本4| 色综合精品一区二区三区| 久久精品国产av网| 日韩在线播放视频1区| 在线中文字幕第二页| 日韩三级伦理片免费看| 日韩精品午夜免费观看| 久久亚洲精品无码系列客服| 婷婷中文字幕色婷婷| 日本二次元少女裸| 欧美日韩久久久久久精品 | 欧美激情电影在线观看不卡| 中文字幕理伦福利片| 国产又粗又猛又爽又黄的刘涛视| 亚洲熟妇免费在线视频| 亚洲欧美日韩偷拍综合| 久久精品国产亚洲av久丨| aaa久久久久久久久久网站| 亚洲 欧美 制服 人妻| 日本女优中文字幕在线| 91精品久久久久久五月天| 麻豆在线视频看片免费| 亚洲av亚洲av亚洲| 欧洲美女黑人粗性暴交视| 麻豆成人在线免费观看视频| 91嫩草17c欧美国产| 日韩手机无线看视频| 99re在线精品国产欧美久久| 欧美一区二区精品人妻免费视频| 午夜精品福利小视频| 亚洲综合成人久久av| 日韩二区不卡视频| 91欧美亚洲综合网| 精品国产麻豆免费成人网| 91熟女视频在线观看| 国产a级片免费在线观看| 欧美中文字幕在线观看视频| 99热精品国产影视久久久影院| 91九色porny国产视频| 伊人久久热青青草| 五月天丁花香婷婷| 中文字幕一线一区和二区| 亚洲欧洲国产一区二区| 五月婷婷激情狠狠| 久久久亚洲精品久久仙| 影音在线精品免费国产资源| 久久视频在线免费播放| 亚洲国产精品97久久宅男| 天天日天天干天天色| 欧美自拍 亚洲偷拍| 国产精品福利久久久久久久| 久久99久久com| 精品97人妻无码中文永久 | 国产精品久久欠久久al换脸综合| 老鸭子在线观看免费播放| 中文字幕+人妻熟女| 厕所偷拍视频一区二区三区| 久久97久久免费视频| 日韩午夜激情福利免费| 亚洲精品乱码97久久久久久| 久久精品美国亚洲av伦理| 亚洲欧美日韩大陆| 亚洲成年人黄色片| 亚洲 免费在线视频| 久久婷婷亚洲中文一区二区 | 久久精品 中文字幕| 欧美人妻系列,中文字幕 | 少妇人妻给我内射视频| 欧美一区二区精品人妻免费视频| 国产成人精品久久久久久蜜臀| 最美人妻一区二区三区| 国产成人无码AA精品一区 | 天天操天天干天天做天天射| 国产亚洲天堂sss| 日韩亚洲图色在线| 亚洲综合在线伊人| 亚洲欧美日韩一区二区三区不卡| 777亚洲精品乱码久久| 久久久久久少妇被弄高潮| 色婷婷中文字幕基地| 久久成人福利视频资源| 欧美 国产 日韩 一区二区| 亚洲av微乳在线| 精品国产乱码久久久久夜深| 久久久久久夜夜夜精品国产| 久久久久久久久久久免费网| 在线观看视频 你懂得| 日韩一级黄色大片免费观看| 日韩av在线专区| 一区二区 熟女人妻| 欧洲av偷拍亚洲av偷拍| 中文字幕亚洲欧美国产| 欧美日韩国产一区二区三区免费| 亚洲国产精品午夜av| 日韩亚洲丝袜系列| 日韩男女av在线观看| 天天日天天干天天爱天天| 欧美熟女人妻一区二区三区| 中文字幕精品久久久人妻| 亚洲人妻中文字幕一区二区| 欧美激情欧美情色成人在线| 欧美一区二区三区成人免费看| 成人黄视频在线播放| 999精品插丰满少妇人妻| 欧美aⅴ一区二区三区| 日本av熟女人妻| 久久午夜福利电影免费试看| 在线免费av大香蕉| 91在线播放视频免费| 亚洲日韩视频高清在线观看| www日本不卡一二三区| 色婷婷久久久swag精品| 88av亚洲精品日韩一区二区| 91精品久久久久久久久不卡网站| 2020日本中文字幕| 91久久婷婷国产麻豆精品| 91九色porny国产视频| 99久久老熟妇仑乱一区| 91久久亚洲成人精品| av一级二级三级久久久| 国产99精品久久久久久圆免看片| 久久视频黄色观看网站| 免费精品国产日韩热久久| 精品国产一区二区三区制服| 日韩亚洲丝袜系列| 五月综合缴情婷婷六月| 国语一区二区在线观看| 日韩a大片在线观看| 欧美日韩国产色图视频| www.亚洲成人色| 久久婷婷激情综合色综合俺也去| 亚洲男人天堂久久| 亚洲熟妇免费在线视频| 中文字幕精品久久伊人| 激情黄色开心五月天| 日韩欧美xxxx大片| 欧美日本一道本一区二区| 日韩中文字幕视频在线播放| 四虎网站免费av| 丝袜日韩中文字幕| 丰满熟女一区二区三区在线| 欧美激情电影在线观看不卡| 日本18禁片免费久久| 青青青在线视频自拍| 五月天色婷婷av在线| 国产有码av一区二区| 午夜在线看1000集| 欧美一区二区三区成人久久片 | 国产探花在线播放精品| 美国av 在线播放| 国产亚洲精久久久久久无码色戒| 91精品久久久久久五月天| 日韩av在线观看免费看看| 熟女激情一区二区三区| 欧美一区二区三日韩| 另类蜜桃刺激视频在线观看| 激情四射五月开心六月婷婷| 精品国产丝袜久久久一区二区| 日韩a大片在线观看| 国产精品久久久久久久久久网站| 亚洲精选黄色在线观看| 亚洲国产精品97久久宅男| 中文字幕亚洲欧美国产| 精品欧美乱子伦一区二区三区| 成人黄片av在线播放| 亚洲av综合久久伊人| 大香蕉大香蕉大香蕉大香蕉大| 伊人久久热青青草| 欧美最猛性亚洲精品推荐| 天天操天天干天天妻| 丰满人妻一区二区三区av| 国产av一区二区三区天美| 国产精品首页在线播放| 中文字幕人妻互换久久视频| 日韩欧美一级在线视频| 中文字幕亚洲资源天堂| 五月婷婷久久久久久久久| 欧美一区二区三区aa大片| 久久最近最新中文字幕大全| 久久久久久久夜精品精品| 99精品中文字幕在线视频| 天天操,天天干,天天| 亚洲av综合久久伊人| 加勒比精品一区二区三区 | 国产一区二区免费五遮挡| 欧美日韩精品成人在线| 97cao瑟瑟在线观看| 最美人妻一区二区三区| 亚洲成a人片,77777| 午夜国产福利电影| 久久视频精彩在线观看| 亚洲丰满熟妇乱xxxxx| 五月综合缴情婷婷六月| 久久视频黄色观看网站| 中文字幕av最新在线| 91精品欧美久久久久视频| 午夜精品久久婷婷蜜桃| 亚洲激情视频在线视频| 清纯唯美激情五月| 亚洲国产精品国自产拍av麻豆| 日韩午夜精品啪啪啪| 亚洲国产aⅴ精品一区二区欧美| 日韩色在线视频观看免费| 亚洲 欧美 制服 人妻| 亚洲一区二区三区久久aa| 91九色porny国产视频| 精品欧美乱子伦一区二区三区| 色yeye香蕉凹凸人妻三区| 国产人妻另类综合专区| 欧美激情 另类视频 亚洲| 亚洲欧美日韩一二三四五六七区| 日韩日韩av在线| 日韩精品刺激视频| 一区二区三区四区中文字幕| 99日本亚洲精品视频| 1024欧美一区二区看片| 国产精品一区二区亚瑟不卡| 亚洲欧美在线视频播放| 伊人久久中文字幕综合观看| 日韩午夜精品啪啪啪| 亚洲乱精品中文字字幕| 首页国产中文字幕av| 影音在线精品免费国产资源| 久久久免费精品少妇| 日韩欧美颜色渔网| 国产aⅴ爽av久久久久成| 人妻丰满精品一区二区三区| 久久久九九九九九精品6| av福利网站在线观看| 少妇激情视频一区二区| 日本熟妇人妻在线| 久久亚洲精品无码系列客服 | 88在线观看91蜜桃国自产| 亚洲欧美日韩一区二区三区不卡| 五月天丁花香婷婷| 91国偷自产一区二区三区老熟女| 日本中文字幕久久免费精品| 欧美自拍 亚洲偷拍| 久久久久999久久日| 久久久久久添逼视频| 久久久久国产精品夜夜夜| 国产自拍 偷拍 在线| 91免费版下载成人| 91偷拍老熟女露脸合集| av激情网站在线观看| 99久久999久久久精品综合| 日韩av中文网址| 99re在线精品国产欧美久久| 99re热在线精品视频9| 另类欧美亚洲中文综合| 人妻精品一区二区在线播放| 青青草青青操在线播放| 91麻豆免费国产在线| 精品久久久久久999| 91老司机免费福利| 亚洲精品久久久久久久久蜜桃| 中文字幕亚洲中文字幕| 日韩av一区中文| 秋霞电影韩国一区二区二区三区| av日韩中文字幕人妻| 午夜寻花美女在线| 中文字幕婷婷网站| 精品蜜臀久久久久抄底| 蜜臀av日韩特黄大片| 久久久久久久久久久久久熟女a∨| 久久国产精品久久伊人麻豆 | 亚洲国产精品国自产拍av麻豆| 最新美女激情av| 嫩草一区二区三区四区中文| 亚洲成人影院中文字幕| 欧美日本韩国乱搞视频| 91人妻人人澡.人人精品| 久久久亚洲熟妇熟女ⅹx| 久久视频这里都是精品| 色熟女蜜臀又伦av| 青青草青青操在线播放| 99.com精品视频| 在线观看色有小视频| 欧美一区二区三区成人免费看 | 午夜三级中文字幕视频网址大全| 亚洲熟妇在线观看一区二区| 99热这里只有的精品| 亚洲精品久久第一页| 在线中文免费黄色| 福利小视频国产一区| 日本18禁片免费久久| 1024 国产高清の最新合集| 日韩欧美三级一区二区在线观看| 午夜精品福利小视频| 91在线无精精品一区二区| 久久精品国产亚洲av不卡性色| 久久人妻少妇嫩草av蜜桃动态图| 牛牛成人手机视频在线| 久久久96精品久久久| 欧美日韩成人三级在线| 中文字幕日韩天堂| 精品久久久久久999| 久久国产精品色av免费看| 精品国产精品视频免费在线观看| 青青青青青欧美在线视频观看| 国产成人av最新网址| 2020日韩中文字幕| 五月婷婷久久久久久久久| 之久精品一区二区| 青草青草视频免费2在线观看| 日韩成人av在线电影观看| 亚洲制服高清中文字幕| 91在线观看视频,| 首页国产中文字幕av| 色婷婷一区二区三区四区五| 亚洲欧美丝袜精品久久直播| 四虎网站免费av| 久久视频在线免费播放| 91中日在线中文字幕| 天天色天天日天天操| av日韩中文字幕人妻| 久久行黑国产露脸精品| 久久综合久久综合大香蕉| 亚洲午夜电影久久久| 中文国产成人精品久久一| 亚洲av电影在线一区二区| 日韩黄色一级大片| 天天日天天干一道一小| 久久久久久久黄色午夜精品| 亚洲 免费 在线 观看| 成人精品1024欧美日韩| 91影视一区二区三区| 之久精品一区二区| 久久综合中文字幕一区二区三区 | 日韩欧美爱爱视频免费观看| 在线观看视频 你懂得| 日韩电影黄色免费| 亚洲不卡一区av| 丰满少妇精品一区二区| 最新偷窥偷拍免费视频观看| 五月婷婷久久久久久久久| 日韩二区不卡视频| 国产69tv精品久久| 亚洲成年人电影天堂| 久久精品国产久精果冻传媒| 人妻人人揉人人澡人人| 日韩亚洲丝袜系列| 久久久久久久黄色午夜精品| 日日碰狠狠躁久久躁一区二区| w疯狂的少妇2做爰韩国| 久久亚洲精品日韩高清| 亚洲自拍偷拍 av| 99久久窝窝午夜影视| 青娱乐国产视频盛| 91精品乱码久久久久久| 亚洲人妻中文字幕一区二区| 亚洲av综合久久伊人| 日韩在线中文字幕不卡| 日韩成人免费电影三区| 精品一区二区国产在线观看| 九九久久国产精品久久久久| 五月天色婷婷av在线| 午夜无人影视在线| 午夜在线观看高清完整版| 日韩人妻插舔激情午夜| 麻豆视传媒官网直接进入免费观看| 久久99精品国产91| 日韩精品午夜免费观看| 成人黄色国产网站在线观看| 精品一区二区三区四区日产 | 久久免费视频精彩视频| 亚洲午夜电影久久久| 日韩av在线点播| 日韩美女主播人体视频自拍首页 | 国产乱人妻精品久久久| youwu视频在线| 亚洲乳大丰满中文字幕少妇av| 天天操天天干天天妻| 五月婷婷51视频免费| 我要看一级国产黄色绿像| 国产 欧美 日韩 视频| 久久视频一区二区三| 亚洲制服高清中文字幕| 欧美高清在线视频99| 国产亚洲天堂sss| 天天日天天干天天色| 国产日韩av免费一区二区三区| 亚洲激情熟女色图| 久久久久久人妻无码| 日韩欧美在线视频第一页| 久久久国产精品尤物av| 三级亚洲天堂亚洲天堂| 日韩美女主播人体视频自拍首页| 国产丝袜香蕉在线观看| 天天干天天天天射天天操| 91九色蝌蚪熟妇出轨| 久久传奇网站一区三区视频| 国产av在线观看麻豆| 亚洲欧美日韩在线中文字幕小| 99精品视频69v精品视频| 9久热这里有国产精品| 欧美3d成人动漫在线| 香蕉久久a v一区二区三区| 欧美熟女人妻一区二区三区| 久草青青草原在线视频| 最新美女激情av| 午夜寻花美女在线| 天天射天天舔天天射| 欧美视频 亚洲视频| 婷婷 少妇 av| 欧美人妻a∨中文字幕在线| 精品97人妻无码中文永久| 蜜久久久91精品人妻| 在线观看日韩中文| 久久在线人妻熟女高清完整版| 天天操,天天干,天天| 国产91久久久久久久| 日本少妇人妻xxxx| 久久精品中文闷骚内射| 日韩av一区中文| 蜜臀av久久久久av蜜臀 | 亚洲日韩视频高清在线观看| 少妇一区二区在线免费观看| 亚洲.欧美.日韩.| 人妻人人揉人人澡人人| 欧美人妻激情中文视频| 91精品人妻一区二区三区四区| 日韩亚洲图色在线| 熟女激情一区二区三区| 成年人在线免费观看黄色片| 亚洲精品久久久久久无几年桃| 欧美日韩精品欧美日韩| 亚洲综合色激情五月| 国产91久久精品一区二区老| 欧美aⅴ一区二区三区| av青青草原在线观看| 欧美3d成人动漫在线| 人妻中文字幕一二三区| 五月激情爱爱婷婷| 久久精品一区二区三区人妻蜜桃| 国产69tv精品久久| 欧美精品国产精品久久久| 亚洲狠狠久久综合一区| 亚洲最黄色的视频| 久久av资源男人站| 88av亚洲精品日韩一区二区| 高清一区二区日韩视频精品| 日韩 美女 在线观看| 色综合精品一区二区三区| 国产精品亚洲精品成人| 亚洲欧洲久久精品| 中文字幕熟女人妻乳一区二区| 欧美熟女人妻一区二区三区| 青青草青青操在线播放| 亚洲欧美av在线观看| 日韩av在线精品观看| 亚洲欧美av在线观看| 欧美最猛性亚洲精品推荐| 天天干天天天天射天天操| 一区二区三区精品乱子伦……| 亚洲精品网站成人久久综合| 久久九特黄的免费大片| 日韩av 自拍偷拍| 欧美一区二区三区成人免费看 | 日本18禁片免费久久| 2023亚洲男人的天堂| 亚洲国产欧美日本视频| 精品蜜臀久久久久抄底 | 国产av一区二区三区天美| 日韩美女影院免费在线观看| 亚洲天堂av电影| 婷婷基地中文字幕| 精品人妻久久久久中文字幕19禁| 成人av电影免费版| 97网视频免费在线观看| 日韩av手机在线电影| 青青草久久大香蕉| 午夜日韩麻豆福利| 18禁成年av网站免费看| 无码人妻精品一区二区三区久久| 日韩欧美颜色渔网| 久久av一区中文字幕| 亚洲 免费 在线 观看| 另类欧美亚洲中文综合| 亚洲欧洲国产一区二区| 午夜国产福利电影| 在线免费av大香蕉| 香蕉在线蕉久在线| 人妻av不卡一区二区三区| 日韩欧美亚州综合久久| 日本av男优巧克力| 中文字幕亚洲欧美国产| 久久久久女优免费视频| 精品一级国产 av| 久久免费视频精彩视频| 婷婷亚洲免费基地| 久久亚洲 欧美 综合aⅴ| 日韩av一区中文| 91在线国产九色porny| 人妻中文字幕一二三区| 久久av资源男人站| 欧美区 日韩区 国产区| 在线观看色有小视频| 欧美精品人妻丝袜一区| 少妇人妻给我内射视频| 久久视频免费有精品| 高潮久久久久久久av免费| 蜜臀久久99精品久久久久久久久| 亚洲:西西一区二区三区四区五区| 日韩草比网站在线免费观看 | 亚洲欧美日韩偷拍综合| 久久99精品久久久久久三级| 在线免费av大香蕉| 精品蜜臀久久久久抄底| 精品国产一区二区三区无码蜜桃 | 狠狠干中文字幕97视频| 日本黄页在线播放日本网站| 高清不卡av在线网| 日韩大全毛片免费观看视频| 日本精品久久久久中人妻| 久久在线人妻熟女高清完整版| 蜜臀av一区二区三区人妻少妇| 蜜桃av 1区二区| 9久久国产精品一区二区| 久久久久在线免费看| 国产99精品久久久久久圆免看片| 欧美一区二区三日韩| 国产一区二区视频大全床| 久久久97精品国产| 亚洲欧美在线制服丝袜| 久久2020精品免费网站| 日韩手机无线看视频| 最新美女激情av| 日韩在线观看免费全集网站| 日韩中文字幕理伦| 香蕉久久a v一区二区三区| 亚洲欧美丝袜精品久久直播| 亚洲精品,欧美日韩| 日韩一区二区三区水蜜桃| 日韩国产精品电影网| 亚洲天堂网av中文字幕| 久久久久久久免费女人体| 日韩日韩av在线| 色图av亚洲综合| 欧美熟妇人妻视频在线| 久久激情毛片大放送| 999精品插丰满少妇人妻| 91一区二区精品在线| 日韩欧美亚州综合久久| 成人黄视频在线播放| 婷婷亚洲天堂中文字幕| av传媒高清影院免费| 一本色道久久亚洲综合精品蜜桃| 久久在线人妻熟女高清完整版| 牛牛成人手机视频在线| 亚洲中文字幕精品高清| 91精品乱码久久久久久| 91亚洲精品成人在线| 91国产视频网站在线观看| 亚洲欧美一二三视频| 久久久久久久久久无吗| 青青草国产福利视频| 首页国产中文字幕av| 国产精品一区二区亚瑟不卡| 国产91久久精品一区二区老| 97精品国产自在在线观看蜜臀| 激情四射五月开心六月婷婷| 欧美日韩成人三级在线| av在线免费在线观看av| 亚洲熟妇在线观看一区二区| 亚洲激情有码一区二区| 国语一区二区在线观看| 最美人妻一区二区三区| 中文字幕的不卡人妻| 欧美熟女vides| 热香蕉和冷香蕉功效一样吗| 人人狠狠久久综合网| 99re热在线精品视频9| 欧美亚洲av日韩综合一区| aaaaa亚洲电影| 亚洲综合成人久久av| 午夜精品久久久久久久久二区三区| 搡老熟女一区二区三区老熟女| 亚洲国产一成人久久精品| 久久男人精品男人天堂免费视频| 首页国产中文字幕av| 国产乱子伦视频免费| 2020中文字幕在线看电影| 男人的天堂久久精平| 视频在线观看黄页| 黑人粗大精品一区二区| 国产精品福利久久久久久久| 国产亚洲欧美日韩在线首页| 日本女同性恋视频| 久久久久久久免费女人体| 午夜日韩麻豆福利| 亚洲 自拍偷拍 欧美| 福利小视频国产一区| 国产精品日韩欧美综合| 天美麻豆成人av精品小说| 亚洲欧洲久久精品| 美女免费一二三区视频| 国产探花在线播放精品| 七十路熟女俱乐部| av福利网站在线观看| 日韩乱妇乱女熟妇熟女网红| 久久99精品国产91| 色噜噜狠狠躁夜夜躁| 久久国产精品——国产精品| 亚洲精选黄色在线观看| 91精品人妻一区二区三区四区| 一区二区三区内射美女毛片| 亚洲青青青国产观看视频| 成人免费av在线网站| 久久精品中文闷骚内射| 久久精品色婷婷国产网站| 香蕉久久久久久久久久久久女| 日韩高清av一区| 日韩视频在线观看一区二区| 欧美日韩在线观看大香蕉| 天天射天天舔天天射| 日韩精品在线视频播放| 国产精品99精品一区二区三区∴| 亚洲aⅴ欧美综合一区二区三区| 久久成人网男人的天堂| 中文字幕+人妻熟女| 国产一区二区不卡91| 九九久久国产精品久久久久| 国产一区二区视频大全床| 成年女人晚上碰免费视频| 国产91极品身材白皙| 精品久久久久久999| 久久久精品99国产国产精| 婷婷激情五月天图片| 亚洲天堂av电影|