18 câu hỏi phỏng vấn LISP hàng đầu và câu trả lời (2025)
Dưới đây là những câu hỏi phỏng vấn lập trình Lisp và câu trả lời dành cho người mới bắt đầu cũng như ứng viên lập trình viên Lisp có kinh nghiệm để có được công việc mơ ước của mình.
1) Giải thích LISP là gì? Đưa ra ví dụ về một số ứng dụng phổ biến được xây dựng trong LISP?
LISP là viết tắt của List Processing, đây cũng là ngôn ngữ lập trình cấp cao dựa trên phép tính hàm chính thức. Ngôn ngữ này được sử dụng để dễ dàng thao tác các chuỗi dữ liệu. Nó được sử dụng cho Trí tuệ nhân tạo. Một số ứng dụng phổ biến được xây dựng trong LISP là
- Cửa hàng Yahoo
- AutoCad
- G2
- Emacs
- Người khắc Igor
Tải xuống PDF miễn phí: Câu hỏi và câu trả lời phỏng vấn Lisp
2) Tại sao LISP được sử dụng cho Trí tuệ nhân tạo?
LISP được sử dụng cho Trí tuệ nhân tạo vì những lý do sau
- Nó hỗ trợ lập trình biểu tượng và AI cũ dựa trên các biểu tượng
- LISP mạnh mẽ. Sự phân biệt giữa mã hoặc dữ liệu yếu hơn, vì vậy nó có vẻ mở rộng hơn các ngôn ngữ lập trình khác khiến nó giống như một ngôn ngữ dành riêng cho miền
- Đây là một công cụ tạo mẫu tuyệt vời và có khả năng giải quyết vấn đề tốt
3) Trình bày bằng ví dụ cách bạn có thể viết mã trong LISP?
Hầu như mọi thứ trong LISP đều là hàm, ngay cả các toán tử toán học. Ví dụ, (+ (* 5 3) 1 ) Đầu ra sẽ là 16 hàm trong LISP mở và đóng bằng dấu ngoặc đơn.
4) Cấu trúc lập trình của LISP là gì?
Cấu trúc lập trình LISP bao gồm các biểu thức tượng trưng hoặc biểu thức s. Biểu thức s bao gồm ba đối tượng hợp lệ
- Nguyên tử: Đó là một số hoặc một chuỗi các ký tự liền kề
- Danh sách: Một danh sách là một chuỗi các nguyên tử hoặc các danh sách khác được đặt trong dấu ngoặc đơn
- Chuỗi: Một nhóm ký tự được bao quanh trong dấu ngoặc kép được gọi là Chuỗi. Các chương trình LISP có thể chạy trên trình thông dịch hoặc dưới dạng mã được biên dịch
5) Các kiểu dữ liệu được phân loại như thế nào trong LISP?
Trong LISP, các kiểu dữ liệu được phân loại thành
- Các loại số vô hướng: Các loại số, ký tự, biểu tượng, v.v.
- Cấu trúc dữ liệu: danh sách, vectơ, vectơ bit và chuỗi
6) Hãy cho biết LISP có bao nhiêu loại biến? Giải thích các biến nào được ràng buộc và có giá trị được gán cho chúng?
Số lượng biến có sẵn trong LISP là hai, một là biến từ vựng, và một là biến đặc biệt. Tham số của các thủ tục là biến được ràng buộc và có giá trị được phân bổ cho chúng.
7) Giải thích Biến cục bộ là gì?
Với một thủ tục nhất định, các biến cục bộ được định nghĩa. Các tham số được đặt tên là đối số trong một hàm cũng được gọi là biến cục bộ. Chúng chỉ có thể truy cập được trong hàm tương ứng.
8) Giải thích hằng số LISP là gì?
Trong LISP, trong quá trình thực thi, hằng số là các biến không bao giờ thay đổi giá trị của chúng. Sử dụng cấu trúc defconstant, hằng số được khai báo.
9) Có thể gọi hàm LISP từ các ngôn ngữ khác không?
LISP cung cấp một hàm “gọi lại”, khi lập trình viên liên kết tên hàm ngoại ngữ với một hàm LISP, nó được liên kết với các hàm gọi lại này. Với hàm ngoại ngữ, lập trình viên phải cung cấp các kiểu dữ liệu kết quả và đối số, để LISP có thể thực hiện chuyển đổi tại giao diện.
10) Hãy kể tên ba chức năng mà LISP yêu cầu?
Để định nghĩa hàm, macro có tên defun được sử dụng, nó cần ba đối số
- Tên của chức năng
- Các tham số của hàm
- Thân hàm
11) Giải thích vị ngữ trong LISP là gì?
Các vị từ là một loại hàm kiểm tra các đối số của chúng đối với các điều kiện cụ thể và trả về giá trị nil nếu điều kiện là sai và nếu điều kiện là đúng thì nó sẽ truy xuất một giá trị khác nil.
12) Giải thích tầm quan trọng của bảng băm trong LISP?
Cấu trúc dữ liệu bảng băm biểu thị một tập hợp các cặp khóa và giá trị được sắp xếp dựa trên mã băm của khóa. Mỗi mục trong bảng băm có cặp khóa/giá trị và được sử dụng để truy cập các mục trong tập hợp. Khi bạn muốn truy cập các phần tử bằng cách sử dụng khóa, bảng băm được sử dụng.
13) Giải thích về LISP-Vector?
Các vectơ là mảng một chiều, do đó, một kiểu con của mảng. Các vectơ và danh sách kết hợp với nhau được gọi là chuỗi. LISP có các vectơ biến đổi/đơn giản có độ dài cố định cũng như các vectơ có độ dài thay đổi được tạo bằng các từ khóa: adjustable và fill-pointer.
14) Giải thích danh sách thuộc tính trong LISP là gì?
Trong LISP, một biểu tượng biểu diễn một đối tượng dữ liệu. Nó bao gồm thành phần được gọi là Property list hoặc plist. LISP cho phép gán các thuộc tính cho các biểu tượng. Một danh sách thuộc tính được thực thi như một danh sách trong một số lượng chẵn các phần tử.
15) Hãy kể tên hai gói được xác định trước được sử dụng trong LISP?
Hai gói được xác định trước trong LISP là
- Lisp thông thường: Nó chứa các ký hiệu cho tất cả các hàm và biến được xác định
- Người dùng Lisp phổ biến: Nó sử dụng gói common-lisp và tất cả các gói khác có công cụ chỉnh sửa và gỡ lỗi
16) Giải thích slot là gì và những tùy chọn slot nào được sử dụng phổ biến nhất?
Slots không gì khác ngoài các biến lưu trữ dữ liệu hoặc trường. Mô tả slot có dạng, trong đó mỗi tùy chọn là một từ khóa theo sau là tên, biểu thức và các tùy chọn khác. Các tùy chọn slot được sử dụng phổ biến nhất là:
- :accessor tên hàm
- :biểu thức initform
- :initarg biểu tượng
17) Giải thích CLOS trong LISP là gì? Mục tiêu của hệ thống đối tượng lisp chung là gì?
Để viết các chương trình hướng đối tượng, LISP chung bao gồm một tập hợp các toán tử, chúng được gọi chung là CLOS hoặc Hệ thống đối tượng Lisp chung. Mục tiêu chung của LISP là
- Để phù hợp với lisp chung theo cách tự nhiên, về mặt ký hiệu chức năng và mở rộng loại LISP chung
- Để cung cấp một lộ trình tăng trưởng suôn sẻ và chuyển đổi dễ dàng cho người dùng hiện tại của các hương vị và vòng lặp phổ biến
- Để cung cấp một cách tiếp cận theo từng lớp
- Cung cấp cả hai nền tảng để phân phối hiệu quả các ứng dụng và ngôn ngữ cho môi trường lập trình mạnh mẽ
18) Giải thích mục đích sử dụng setq trong LISP là gì?
setq được sử dụng để thiết lập các biến trong LISP
Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn
LISP tuyệt vời.
Tôi thích LISP, đặc biệt là AutoLISP.
Mong muốn được làm việc với LISP
Tôi đã vượt qua, ngoại trừ một câu hỏi vì nó được hỏi sai. Câu hỏi 10 yêu cầu 3 hàm theo yêu cầu của Lisp, nhưng thực tế bạn muốn 3 phần tử (không phải đối số) cần thiết để định nghĩa một hàm. Vậy thì câu trả lời đưa ra là đúng.
Tôi thích những câu hỏi, dù theo cách nào. Tôi nghĩ bạn sẽ được tuyển dụng tự động khi họ hỏi câu hỏi 1 và mắt bạn sáng lên ngay lập tức và họ phải yêu cầu bạn ngừng trả lời,