Hiển thị các bài đăng có nhãn trace. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn trace. Hiển thị tất cả bài đăng

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>