Thứ Bảy, 20 tháng 10, 2012

Dùng hàm trace để quan sát kết quả chạy đệ quy

CL-USER> (defun list-append (L1 L2)
    "Append L1 by L2."
    (if (null L1)
        L2
        (cons (first L1) (list-append (rest L1) L2))))
LIST-APPEND
CL-USER> (list-append '(a b c) '(c d e))
(A B C C D E)
CL-USER> (trace list-append)
(LIST-APPEND)
CL-USER> (list-append '(a b c) '(c d e))
  0: (LIST-APPEND (A B C) (C D E))
    1: (LIST-APPEND (B C) (C D E))
      2: (LIST-APPEND (C) (C D E))
        3: (LIST-APPEND NIL (C D E))
        3: LIST-APPEND returned (C D E)
      2: LIST-APPEND returned (C C D E)
    1: LIST-APPEND returned (B C C D E)
  0: LIST-APPEND returned (A B C C D E)
(A B C C D E)
CL-USER> 

Không có nhận xét nào:

Đăng nhận xét