lisp语言中如何判断一个输入是不是表?
发布网友
发布时间:2022-04-30 06:01
我来回答
共2个回答
热心网友
时间:2023-10-19 02:51
我个人觉得一般表的话,你一眼就看得出的,
但是如果你实在要验证,我这里有一个方法,其他具体我没试,但是这个方法肯定可以:
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
其实这个,你只要拿个需要以表作为参数的函数去验证,不就知道了吗?
我这只是一个抛砖引玉,希望你能发现更好的方法
热心网友
时间:2023-10-19 02:52
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,即表处理,这种编程语言用来处理由括号(即“(”和“)”)构成的列表。
热心网友
时间:2023-10-19 02:51
我个人觉得一般表的话,你一眼就看得出的,
但是如果你实在要验证,我这里有一个方法,其他具体我没试,但是这个方法肯定可以:
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
其实这个,你只要拿个需要以表作为参数的函数去验证,不就知道了吗?
我这只是一个抛砖引玉,希望你能发现更好的方法
热心网友
时间:2023-10-19 02:52
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语言中如何判断一个输入是不是表?
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...
scheme中表达式'(())与'('())的本质区别是什么?
当输入表达式'(())时,语言处理器将其解释为(());而输入('())时,则被解释为((quote ()))。可见,通过'符号,语言处理器能够区分输入表达式的性质。对于'(())这样的表达式,语言处理器在幕后执行的步骤主要包括宏解析和求值两个阶段。首先,在宏解析阶段,'(())等价于 (quote ( () ) )...
antolisp中initget函数什么意思?怎么用啊?
在随后调用用户输入函数时,如果用户输入的不是相应的数据类型(例如与 getpoint 函数相对应的类型是一个点),该函数将检索关键字表来确定用户是否键入了一个关键字。如果用户的输入和表中的一个关键字相匹配,函数将以字符串的形式返回该关键字。应用程序可以对返回的关键字进行检测,并对每一个关键字...
Auto cad中的LISP语言是什么?有怎样的用途?
AutoLISP语言中的一切成分都是以函数形式给出的,它没有语句概念或其他语法结构。执行AutoLISP程序就是执行一些函数,再调用其它函数。(setq pt1 (getpoint "\n请选择圆心插入点"))。(command "CIRCLE" pt1 100);命令这个插入点绘制圆,半径为100。
LISP 如何获取图元中所有点信息并列表
用等分函数线的函数,然后保存坐标到一个表就行了。
auto lisp 的点对 具体是什么概念如'(0 ."line")
在 lisp 语言中,点对是一种特殊的表。可以通过如下操作 (setq a 1 b 2)(setq c (cons a b))得到点对 c 为 (1 . 2)。点对在操作中和其他表有所不同,如 (length c) 会提示以下出错信息:; 错误: 列表错误: 2 有出错信息,没有返回值,表示 c 不是普通的表,不能够运用 length ...
...类似于广联达软件中的,在CAD里面用LISP或者易语言上实现都行_百度知...
CAD+广联达+易语言 想做一个图形计算器,类似于广联达软件中的,在CAD里面用LISP或者易语言上实现都行 20 RT,没有思路,就是可以直接点数字,输入参数的,然后用LISP或者易语言读取,再计算下面是图是广联达里面的,绿色的数字都可以点击修改,我想在易语言或者CAD里面实现,哪位大神给个思... RT,没有思路,就是可以...
LISP 语言如何修改列表中的某个元素?
;@p1是新点,替换直线起点,直线起点序号为10;&k1是直线(setq #k1 (entget &k1));取得直线属性列表(setq %k1 (assoc 10 #k1));;取得起点元素(setq %k2 (cons 10 @p1));;取得直线起点新元素(setq #k1 (subst %k2 %k1 #k1));;替换元素;以上是坐标点替换方法,其它元素替换基本相同 ...
怎么使用ACAD中的LISP功能?语言结构是什么?
LISP语言是人工智能语言,是以表结构为基础的语言,关键是入门容易、可读性强、调试方便(所见即所得)等,如果是入门级的新手,建议直接选用这个来开发。
Lisp是什么样的语言?
Lisp是第一个函数式程序语言,区别于C语言、Fortran等命令型程序语言和Java、C#、Objective-C等面向对象程序语言。由于历史的原因,Lisp长期以来被认为主要用于人工智能领域,但Lisp并不是只为人工智能而设计,而是一种通用的程序语言。