18 个最热门的 LISP 面试问题及答案(2025 年)
以下是 Lisp 编程面试问题和答案,适合新手和经验丰富的 Lisp 程序员应聘者,以帮助他们获得理想的工作。
1)解释什么是 LISP?举一些用 LISP 构建的流行应用程序的例子?
LISP 代表列表处理,它也是一种基于形式函数演算的高级编程语言。该语言用于轻松操作数据字符串。它用于 人工智能. 用 LISP 构建的一些流行应用程序包括
- 雅虎商店
- AutoCad中
- G2
- Emacs的
- 伊戈尔·恩格拉弗
2)为什么 LISP 用于人工智能?
LISP 用于人工智能的原因如下
- 它支持符号编程,而旧人工智能是基于符号的
- LISP 功能强大。代码或数据的区别较弱,因此感觉比其他编程语言更具可扩展性,这让它感觉像是一种领域特定语言
- 它是一款出色的原型设计工具,善于解决问题
3) 举例说明如何用 LISP 编码?
LISP 中的几乎所有内容都是函数,甚至是数学运算符。 例如,(+ (* 5 3) 1 ) 输出将是 16,LISP 中的函数以括号打开和关闭。
4)LISP的编程结构是怎样的?
LISP 编程结构由符号表达式或 s-表达式组成。s-表达式由三个有效对象组成
- 原子: 它是一个数字或连续的字符串
- 列表: 列表是括号中的原子或其他列表的序列
- 串: 用双引号括起来的一组字符称为字符串。LISP 程序既可以在解释器上运行,也可以作为编译代码运行
5)LISP 中数据类型如何分类?
在 LISP 中,数据类型分为
- 标量类型: 数字类型、字符、符号等。
- 数据结构: 列表、向量、位向量和字符串
6) 说出 LISP 有多少种类型的变量?解释一下哪些变量是绑定的,哪些变量被赋值了?
LISP 中可用的变量有两个,一个是词汇变量,另一个是特殊变量。程序的参数是绑定的变量,并且已为其分配值。
7)解释什么是局部变量?
对于给定的程序,定义局部变量。函数中称为参数的参数也称为局部变量。它们只能在相应的函数内访问。
8)解释什么是 LISP 常量?
在 LISP 中,常量是在执行期间永远不会改变其值的变量。使用 defconstant 构造声明常量。
9) 是否可以从其他语言调用 LISP 函数?
LISP 提供了“回调”功能,当程序员将外语函数名与 LISP 函数关联时,它就会与这些回调函数链接起来。对于外语函数,程序员必须提供结果数据类型和参数,以便 LISP 可以在接口上执行转换。
10)说出 LISP 所需的三个功能是什么?
为了定义函数,使用名为 defun 的宏,它需要三个参数
- 函数名称
- 函数的参数
- 函数主体
11)解释 LISP 中的谓词是什么?
谓词是一种函数,它根据特定条件测试其参数,如果条件为假则返回 nil 值,如果条件为真则检索一些非零值。
12)解释哈希表在 LISP 中的重要性?
哈希表数据结构表示基于键的哈希码排列的键和值对的集合。哈希表中的每个项目都有键/值对,用于访问集合中的项目。当您想要使用键访问元素时,将使用哈希表。
13)解释 LISP-Vectors?
向量是一维数组,因此是 排列。向量和列表合称为序列。LISP 具有固定长度变量/简单向量以及使用关键字创建的可变长度向量:adjustable 和 fill-pointer。
14)解释 LISP 中的属性列表是什么?
在 LISP 中,符号代表数据对象。它由称为属性列表或 plist 的组件组成。LISP 允许为符号分配属性。属性列表以偶数个元素内的列表形式执行。
15)请说出 LISP 中使用的两个预定义包是什么?
LISP 中的两个预定义包是
- 通用 Lisp: 它包含所有定义的函数和变量的符号
- 普通 Lisp 用户: 它使用 common-lisp 包和所有其他带有编辑和调试工具的包
16)解释什么是 slot,以及最常用的 slot 选项有哪些?
插槽只不过是存储数据或字段的变量。插槽描述的形式为,其中每个选项都是一个关键字,后跟名称、表达式和其他选项。最常用的插槽选项是:
- :accessor 函数名称
- :initform 表达式
- :initarg 符号
17)解释一下 LISP 中的 CLOS 是什么?Common Lisp 对象系统的目标是什么?
为了编写面向对象程序,通用 LISP 包含一组运算符,统称为 CLOS 或 Common Lisp 对象系统。LISP 的共同目标是
- 以自然的方式适应 Common Lisp,在函数符号和扩展 Common Lisp 类型方面
- 为当前不同风格和常见循环的用户提供平稳的成长路径和轻松的过渡
- 提供分层方法
- 提供高效交付应用程序的平台和强大的编程环境语言
18)解释一下 setq 在 LISP 中的用途?
setq 用于在 LISP 中设置变量
这些面试问题也会对你的口试有帮助
精彩的 LISP。
我喜欢 LISP,尤其是 AutoLISP。
期待与 LISP 合作
我通过了,除了一题,因为题目问错了。问题 10 要求 Lisp 所需的 3 个函数,但你真正想要的是定义函数所需的 3 个元素(而不是参数)。那么给出的答案是正确的。
不管怎样,我都喜欢这些问题。我认为当他们问出第一个问题时,你的眼睛立刻亮了起来,他们不得不要求你停止回答,你就会自动被录用,