1. Trang chủ
  2. » Công Nghệ Thông Tin

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

12 404 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 56,69 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

NGÔN NGỮ LẬP TRÌNH HÀMBộ 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

Trang 1

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ơ

Trang 2

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

Trang 3

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

Trang 4

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), ()

Trang 5

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: ( E0 E1 E2 En)

V1 V2 Vn

Áp d ụ ng hàm E0 lên t ậ p V1, V2, Vn  giá tr ị bi ể u th ứ c

Trang 6

NGÔN NGỮ LISP

 Ví dụ: định trị biểu thức sau:

(+ 5 (* 2 3) (- 8 7) )

Hàm ‘+’

V1 = 5 V2 = 6 V3 = 1

Áp d ụ ng hàm + lên t ậ p V1, V2, V3  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)

Trang 7

NGÔN NGỮ 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))

Trang 8

NGÔN NGỮ 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 E1 E2 En): tr ả v ề danh sách g ồ m các

ph ầ n t ử là giá tr ị c ủ a các bi ể u th ứ c E1, E2, , En

Trang 9

NGÔN NGỮ 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

Trang 10

NGÔN NGỮ LISP

 Các hàm logic: AND, OR, NOT

 Hàm (AND E1 E2 En): đị 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 En

 Hàm (OR E1 E2 En): đị 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

Trang 11

NGÔN NGỮ 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

(ĐK1 BT1) (ĐK2 BT2)

(ĐKn BTn) (T BTn+1) )

Trang 12

NGÔN NGỮ LISP

 Đị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

Ngày đăng: 22/10/2014, 22:49

TỪ KHÓA LIÊN QUAN

w