18 найкращих запитань і відповідей на інтерв’ю LISP (2025)
Ось питання та відповіді на співбесіду з програмування на Lisp для новачків, а також для досвідчених кандидатів у програміст Lisp, щоб отримати роботу своєї мрії.
1) Поясніть, що таке LISP? Наведіть приклад деяких популярних програм, побудованих на LISP?
LISP розшифровується як List Processing, це також мова програмування високого рівня, заснована на формальному функціональному численні. Ця мова використовується для легкого маніпулювання рядками даних. Використовується для Штучний Інтелект. Деякі з популярних програм, побудованих на LISP
- Магазин Yahoo
- AutoCad
- G2
- Emacs
- Ігор Гравер
Безкоштовне завантаження PDF: Запитання та відповіді на інтерв’ю Lisp
2) Чому LISP використовується для штучного інтелекту?
LISP використовується для штучного інтелекту з наступних причин
- Він підтримує символьне програмування, а старий ШІ базувався на символах
- LISP потужний. Розрізнення коду чи даних є слабкішим, тому він виглядає більш розширюваним, ніж інші мови програмування, що створює відчуття, що воно схоже на мову, орієнтовану на домен.
- Це чудовий інструмент для створення прототипів, який добре справляється з проблемами
3) Продемонструйте на прикладі, як можна кодувати на LISP?
Майже все в LISP є функціями, навіть математичні оператори. Наприклад, (+ (* 5 3) 1 ) Результатом буде 16, функції в LISP відкриваються та закриваються дужками.
4) Яка структура програмування для LISP?
Структура програмування LISP складається з символьних виразів або s-виразів. S-вираз складається з трьох дійсних об’єктів
- Atom: Це число або рядок із суміжних символів
- Списки: Список — це послідовність атомів або інших списків, укладених у круглі дужки
- Рядок: Група символів, узятих у подвійні лапки, називається рядком. Програми LISP можна запускати в інтерпретаторі або у вигляді скомпільованого коду
5) Як класифікуються типи даних у LISP?
У LISP типи даних класифікуються як
- Скалярні типи: Типи чисел, символи, символи тощо.
- Структура даних: список, вектори, біт-вектори та рядки
6) Згадайте, скільки типів змінних доступно в LISP? Поясніть, що таке зв’язані змінні та яким присвоєно значення?
Кількість змінних, доступних у LISP, становить дві, одна є лексичною змінною, а інша є спеціальною змінною. Параметр процедур - це змінна, яка зв'язана і має призначені для неї значення.
7) Поясніть, що таке локальні змінні?
За допомогою заданої процедури визначаються локальні змінні. Параметри, названі як аргументи у функції, також називаються локальними змінними. Вони доступні лише в межах відповідної функції.
8) Поясніть, що таке константи LISP?
У LISP під час виконання константи є змінними, які ніколи не змінюють своїх значень. За допомогою конструкції defconstant оголошуються константи.
9) Чи можна викликати функції LISP з інших мов?
LISP забезпечує функцію «зворотного виклику», коли програміст пов’язує назву функції іноземною мовою з функцією LISP, вона пов’язується з цими функціями зворотного виклику. З іноземною функцією програміст повинен надати типи даних результату та аргумент, щоб LISP міг виконувати перетворення в інтерфейсі.
10) Згадайте, які три функції потрібні для LISP?
Для визначення функцій використовується макрос з назвою defun, йому потрібні три аргументи
- Назва функції
- Параметри функції
- Тіло функції
11) Поясніть, що таке предикат у LISP?
Предикати — це один із типів функцій, які перевіряють свої аргументи на певні умови та повертають нульове значення, якщо умова хибна, а якщо умова істина, отримує деяке ненульове значення.
12) Поясніть, яке значення має хеш-таблиця в LISP?
Структура даних хеш-таблиці позначає набір пар ключів і значень, які впорядковані на основі хеш-коду ключа. Кожен елемент у хеш-таблиці має пару ключ/значення та використовується для доступу до елементів колекції. Якщо ви хочете отримати доступ до елементів за допомогою ключа, використовується хеш-таблиця.
13) Поясніть LISP-вектори?
Вектори є одновимірними масивами, отже, підтипом масив. Вектори та списки разом називаються послідовностями. LISP має змінні/прості вектори фіксованої довжини, а також вектори змінної довжини, які створюються за допомогою ключових слів: adjustable і fill-pointer.
14) Поясніть, що таке список властивостей у LISP?
У LISP символ представляє об’єкти даних. Він складається з компонента під назвою Список властивостей або plist. LISP дозволяє призначати властивості символам. Список властивостей виконується як список із парною кількістю елементів.
15) Згадайте, які два попередньо визначені пакунки використовуються в LISP?
У LISP є два попередньо визначені пакунки
- Common Lisp: Він містить символи для всіх визначених функцій і змінних
- Користувач Common Lisp: Він використовує пакунок common-lisp і всі інші пакунки з інструментами редагування та налагодження
16) Поясніть, що таке слот і які варіанти слотів найчастіше використовуються?
Слоти - це не що інше, як змінні, які зберігають дані або поля. Опис слота має форму, де кожна опція є ключовим словом, за яким слідують ім’я, вираз та інші параметри. Найбільш часто використовувані варіанти слотів:
- : ім'я функції доступу
- :вираз initform
- : символ initarg
17) Поясніть, що таке CLOS у LISP? Які цілі системи об’єктів Common Lisp?
Для написання об’єктно-орієнтованих програм загальний LISP включає набір операторів, разом вони називаються CLOS або Common Lisp Object System. Загальною метою LISP є
- Для того, щоб відповідати common lisp природним чином, з точки зору функціональної нотації та розширення загального типу LISP
- Щоб забезпечити плавний шлях зростання та легкі переходи для поточних користувачів ароматів і загальних циклів
- Щоб забезпечити багаторівневий підхід
- Надати як платформи для ефективної доставки додатків, так і мову для потужного середовища програмування
18) Поясніть, для чого використовується setq у LISP?
setq використовується для встановлення змінних у LISP
Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)
Чудовий LISP.
Я люблю LISP, особливо AutoLISP.
Чекаю на роботу з LISP
Я пройшов, за винятком одного питання, оскільки воно задано неправильно. Запитання 10 запитує 3 функції, необхідні для Lisp, але насправді вам потрібні 3 елементи (не аргументи), необхідні для визначення функції. Тоді дана відповідь правильна.
У будь-якому випадку мені сподобалися запитання. Я думаю, що вас автоматично беруть на роботу, коли вони ставлять запитання 1, і ваші очі відразу спалахують, і вони повинні попросити вас припинити відповідати,