lisp语言中如何判断一个输入是不是表?

来源:百度知道 编辑:UC知道 时间:2024/07/02 19:32:14
刚刚开始学lisp~希望大家帮忙~谢谢~~

1、LISP里面有个函数计算表的长度,格式是:(vl-list-length list-or-cons-object),其中list-or-cons-object表示表或点对的表,如果参数是个真正的表,则返回包含表的长度的整数,如果是表对表,则返回NIL。
2、Lisp 语言最早是在 20 世纪 50 年代末由麻省理工学院(MIT)为研究人工智能而开发的。Lisp 语言的强大使它在其它方面诸如编写编辑命令和集成环境等显示其优势。而 GNU Emacs Lisp 主要由 Maclisp 发展而来,该语言由 MIT 在 20 世纪 60 年代写成。它在某种程度上继承了 Common Lisp,而 Common Lisp 在 20 世纪 80 年代成了一种标准。 Lisp 代表 LISt Processing,即表处理,这种编程语言用来处理由括号(即“(”和“)”)构成的列表。

我个人觉得一般表的话,你一眼就看得出的,
但是如果你实在要验证,我这里有一个方法,其他具体我没试,但是这个方法肯定可以:

LISP里面有个函数计算表的长度,格式是:
(vl-list-length list-or-cons-object)
其中list-or-cons-object表示表或点对的表
如果参数是个真正的表,则返回包含表的长度的整数,如果是表对表,则返回NIL

举例:
(vl-list-length nil)

0

(vl-list-length '(1 2))

2

(vl-list-length '(1 2 . 3))

nil

其实这个,你只要拿个需要以表作为参数的函数去验证,不就知道了吗?

我这只是一个抛砖引玉,希望你能发现更好的方法