Nguyen Van Linh - Programing Language - Chapte r 8 1 CHƯƠNG 8: LẬP TRÌNH HÀM Ngôn ngữ lập trình hàm • Giới thiệu. • Hàm toán học. • Dạng hàm. • Bản chất của lập trình hàm. Ngôn ngữ LISP Nguyen Van Linh - Programing Language - Chapte r 8 2 NGÔN NGỮ LISP Giới thiệu. Các khái niệm cơ bản. Các hàm. Đệ quy. Biến toàn cục và biến cục bộ. Các hàm nhập xuất. Hướng dẫn sử dụng Lisp. Nguyen Van Linh - Programing Language - Chapte r 8 3 LISP: GIỚI THIỆU Được J. MAC CARTHY viết năm 1958. Phát triển mạnh vào đầu những năm 80. Cú pháp đơn gỉan. Là một ngôn ngữ mạnh. Mềm dẻo và dễ phát triển. Áp dụng trong lĩnh vực trí tuệ nhân tạo. Nguyen Van Linh - Programing Language - Chapte r 8 4 CÁC KHÁI NIỆM CƠ BẢN Nguyên tử (Atom): Số, kí hiệu. Danh sách: Dã̃y có thứ tự các nguyên tử hoặc danh sách, nằm trong cặp dấu ngoặc đơn (). Biểu thức và nguyên tắc lượng giá: • Số. • Ký hiệu. • Danh sách. Nguyen Van Linh - Programing Language - Chapte r 8 5 HÀM ĐỊNH NGHĨA TRƯỚC • Các hàm số học: +, -, *, /, 1+, 1- • Các hàm so sánh: <, >, <=, >=, =, eq. • Các hàm thao tác trên danh sách: CAR, CDR, CONS và LIST. • Các vị từ kiểm tra: (atom a), (numberp n), (listp l), (symbol s), • Các hàm logic AND, OR, NOT. • Các hàm điều khiển IF, COND, PROGN, PROG1 Nguyen Van Linh - Programing Language - Chapte r 8 6 HÀM DO NGƯỜI DÙNG ĐỊNH NGHĨA Cú pháp: (defun <tên hàm> (Các tham số hình thức) <biểu thức> ) Ví dụ: (defun binh_phuong (n) (* n n) ) (defun lap_phuong (n) (* n (binh_phuong n)) ) Nguyen Van Linh - Programing Language - Chapte r 8 7 ĐỆ QUY Một trường hợp “nguyên tố” để kết thúc việc gọi đệ quy. Lời gọi đệ quy phải bao hàm yếu tố dẫn đến trường hợp “nguyên tố”. Ví du: Tính n giai thừa (defun giai_thua (n) (if (= n 0) 1 ; Trường hợp “nguyên tố” (* n (giai_thua (1- n))) ) ) Nguyen Van Linh - Programing Language - Chapte r 8 8 BIẾN TOÀN CỤC & BIẾN CỤC BỘ (SETQ <tên biến> <biểu thức>). (LET ((var 1 E 1 ) (var 2 E 2 ) (var k E k )) E k+1 E n ) Hạn chế sử dụng biến toàn cục. Nguyen Van Linh - Programing Language - Chapte r 8 9 CÁC HÀM NHẬP XUẤT • LOAD( <tên tập tin>). • (READ) • (PRINT e) • (PRINC e) • (TERPRI) Nguyen Van Linh - Programing Language - Chapte r 8 10 HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH Soạn thảo chương trình: • Sử dụng bất kỳ editor nào. • Phầ̀̀n mở rộng .LSP. • Trong một tập tin, có thể định nghĩa nhiều hàm. Gọi thực hiện XLISP: • Trong Windows 3.x. • Trong Windows 9x. • Sử dụng menu File-Open/Load để mở tập tin chương trình. . Van Linh - Programing Language - Chapte r 8 1 CHƯƠNG 8: LẬP TRÌNH HÀM Ngôn ngữ lập trình hàm • Giới thiệu. • Hàm toán học. • Dạng hàm. • Bản chất của lập trình hàm. Ngôn. Lisp. Nguyen Van Linh - Programing Language - Chapte r 8 3 LISP: GIỚI THIỆU Được J. MAC CARTHY viết năm 19 58. Phát triển mạnh vào đầu những năm 80 . Cú pháp đơn gỉan. Là một ngôn ngữ. Van Linh - Programing Language - Chapte r 8 9 CÁC HÀM NHẬP XUẤT • LOAD( <tên tập tin>). • (READ) • (PRINT e) • (PRINC e) • (TERPRI) Nguyen Van Linh - Programing Language - Chapte r 8 10 HƯỚNG