Tải bản đầy đủ (.pdf) (12 trang)

Ngôn ngữ lập trình hàm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (56.69 KB, 12 trang )

NGÔN NGỮ LẬP TRÌNH HÀM
Bộ môn Công nghệ phần mềm
Khoa Công nghệ thông tin & Truyền thông
Đại học Cần Thơ
NGÔN NGỮ LẬP TRÌNH HÀM
 Ngôn ngữ lập trình hàm được thiết kế dựa
trên các hàm toán học (ngôn ngữ không ra
lệnh)
 Hàm là một sự tương ứng giữa các phần tử
của một tập hợp (miền xác định) với các
phần tử của một tập hợp khác (miền giá trị)
 Bản chất ngôn ngữ lập trình hàm: mô phỏng
các hàm toán học; chương trình là các định
nghĩa hàm và áp dụng hàm; thực hiện
chương trình là đánh giá các áp dụng hàm
NGÔN NGỮ LISP
 Ðược J. MAC CARTHY viết năm 1958
 Sử dụng nhiều trong lĩnh vực trí tuệ nhân tạo
 Cú pháp đơn giản, chỉ có cấu trúc danh sách
(List Processing Language)
 Là một ngôn ngữ mạnh, mềm dẻo
NGÔN NGỮ LISP
 Nguyên tử (atom): đối tượng cơ bản của
LISP, có thể là số hay ký hiệu
 Số: viết ở hệ thập phân, có thể là số thực, số
nguyên. Ví dụ: 15, -20, 18.25, 172.4E+3
 Ký hiệu (symbol): chuỗi các ký tự (trừ ký tự đặc
biệt, dấu ngoặc, khoảng trống). Ví dụ: tong, a, ds
 Danh sách: dãy có thứ tự của các phần tử
cách nhau ít nhất một khoảng trống và đặt
nằm trong cặp dấu ngoặc đơn. Phần tử của


danh sách có thể là một nguyên tử hoặc là
một danh sách. Ví dụ: (1 2), (+ 2 3), (2 a), ()
NGÔN NGỮ LISP
 Biểu thức: là một nguyên tử hoặc một danh
sách
 Quy tắc định trị biểu thức:
 Số: giá trị là chính số đó
 Ký hiệu: giá trị quy định trước của LISP hoặc giá
trị của người dùng đã gán cho ký hiệu
 Danh sách: (E
0
E
1
E
2
E
n
)
Một hàm mà
LISP đã biết
V
1
V
2
V
n
Áp dụng hàm E
0
lên tập V
1

, V
2
, V
n
 giá trị biểu thức
định trị
định trị
định trị
NGÔN NGỮ LISP
 Ví dụ: định trị biểu thức sau:
(+ 5 (* 2 3) (- 8 7) )
Hàm ‘+’
LISP đã biết
V
1
= 5 V
2
= 6
V
3
= 1
Áp dụng hàm + lên tập V
1
, V
2
, V
3
 giá trị biểu thức = 5+6+1 = 12
 Chú ý: LISP luôn cố gắng thực hiện định trị
biểu thức. Nếu muốn LISP không định trị,

phải dùng hàm quote hoặc ký hiệu nháy đơn
‘ trước biểu thức. Ví dụ: ‘(+ 5 3), ‘tong, ‘(a b)
NGÔN NGỮ LISP
 Các hàm được định nghĩa trước trong LISP
 Hàm số học: làm việc trên số và trả về kết
quả số. Một số hàm cơ bản: +, -, *, /, 1+, 1
Ví dụ: (+ 2 3), (1+ 5)
 Hàm so sánh: thực hiện so sánh, trả về T
(đúng) hoặc NIL (sai).
 So sánh số: <, <=, >, >=, =. Ví dụ: (< 5 7)
 So sánh bằng dùng cho 2 nguyên tử: eq. Ví dụ:
(eq 2 3), (eq ‘tuong ‘duong)
 So sánh bằng dùng cho 2 đối tượng bất kỳ: equal.
Ví dụ: (equal 3 5), (equal ‘(a b) ‘(1 2))
NGÔN NGỮ LISP
 Các hàm được định nghĩa trước trong LISP
 Hàm xử lý danh sách: CAR, CDR, CONS,
LIST
 Hàm (CAR L): trả về phần tử đầu tiên của danh
sách L
 Hàm (CDR L): trả về danh sách sau khi bỏ đi
phần tử đầu tiên trong danh sách L
 Hàm (CONS x L): trả về danh sách sau khi thêm
phần tử x vào đầu danh sách L
 Hàm (LIST E
1
E
2
E
n

): trả về danh sách gồm các
phần tử là giá trị của các biểu thức E
1
, E
2
, , E
n
NGÔN NGỮ LISP
 Các hàm được định nghĩa trước trong LISP
 Các hàm kiểm tra: atom, numberp, symbolp,
listp
 Hàm (atom x): trả về t nếu x là một nguyên tử,
ngược lại trả về nil
 Hàm (numberp x): trả về t nếu x là số, ngược lại
trả về nil
 Hàm (symbolp x): trả về t nếu x là ký hiệu, ngược
lại trả về nil
 Hàm (listp x): trả về t nếu x là danh sách, ngược
lại trả về nil
NGÔN NGỮ LISP
 Các hàm được định nghĩa trước trong LISP
 Các hàm logic: AND, OR, NOT
 Hàm (AND E
1
E
2
E
n
): định trị các biểu thức từ
trái sang phải. Nếu gặp một biểu thức là NIL thì

dừng và cho kết quả là NIL. Nếu tất cả các biểu
thức đều khác NIL thì lấy giá trị của biểu thức E
n
 Hàm (OR E
1
E
2
E
n
): định trị các biểu thức từ
trái sang phải. Nếu gặp một biểu thức khác NIL
thì dừng và lấy kết quả của biểu thức đó. Nếu tất
cả biểu thức là NIL thì kết quả là NIL
 Hàm (NOT E): trả về NIL nếu giá trị của E khác
NIL, ngược lại trả về T
NGÔN NGỮ LISP
 Các hàm được định nghĩa trước trong LISP
 Hàm rẽ nhánh khiển: (IF E1 E2 E3), nếu E1
khác NIL trả về kết quả E2, ngược lại trả về
E3
 Hàm lựa chọn: (COND
(ĐK
1
BT
1
)
(ĐK
2
BT
2

)

(ĐK
n
BT
n
)
(T BT
n+1
)
)
NGÔN NGỮ LISP
 Hàm do người lập trình định nghĩa
 Định nghĩa hàm:
(defun <tên hàm>(danh sách các tham số)
<biểu thức>
)
 Gọi hàm: (tên hàm tham số)
 Ví dụ: (defun bp(n)
(* n n)
)
(bp 5) = 25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×