当前位置:文档之家› 磁感应强度的几种定义

磁感应强度的几种定义

磁感应强度的几种定义
磁感应强度的几种定义

磁感应强度的几种定义

磁感应强度是描述磁场的基本物理量,已知一个磁场的磁感应强度的分布,就可以确定运动电荷、电流在磁场中受到的作用力。磁感应强度B 是和静电场的电场强度E 相对应的物理量。静电场对静止电荷有作用力,静电场可以用检验电荷在电场中各点受到的力来研究,电场强度E 定义为E =q

F 。研究磁场也要引进一个检测的物体,由于磁场对运动电荷、电流有作用力,对通电线圈有力矩的作用,所以可以采用这三种物体作为检测磁场的物体,采用不同的检测物体,也就相应地给出了磁感应强度B 的不同定义。

下面介绍常见的磁感应强度的三种定义方法。

(1)用一段通电直导线受到的磁场力来定义

通电直导线在磁场中受到力的作用,这种力叫做安培力。实验表明,如果直导线的长度为L ,电流为I ,垂直放在匀强磁场中,作用在导线上的安培力大小为F =ILB 。由此可以定义磁感应强度B :IL

F B =。 这种定义方法是用一小段通电导线作为检测物体,安培力能够演示,形象直观,便于学生接受。中学教材多采用这种定义方法,但是这种方法确定的是一小段通电导线所在范围内磁感应强度B 的平均值,只有对匀强磁场,给出的才是各点的B ;对于非匀强磁场,不能给出各点的B ,因此,对学生建立磁感应强度的概念有不利之处。

(2)用通电矩形线圈受到的力矩来定义

面积为S 的小矩形线圈,通以电流I ,当线圈平面跟磁场平行时,线圈所受磁场力的力矩为M =BIS ,由此可给出B 的定义:

IS

M B = 由于线圈等效于一个小磁针,线圈在磁场中受到的作用力相当于小磁针受到的作用力。所以用线圈作为检测物体来研究磁场,与历史上对磁场的认识过程比较一致,某些普通物理教材中有采用这种定义方法的,但是由于线圈总有一定的大小,所确定的也是线圈范围内的磁感应强度B 的平均值,不能严格地确定磁场中各个点的B 。

(3)用运动电荷受到的磁场力来定义

实验表明,运动电荷在磁场中要受到力的作用,这个力叫做洛伦兹力。运动电荷在磁场中某点所受磁场力的大小跟电荷量q 、运动速度υ以及该点的磁感应强度B 有关系,还跟运动方向与磁场方向间的夹角有关系,当电荷运动的方向垂直于磁场时所受的磁场力最大,且F 洛=q υB ,由此可给出磁感应强度B 的定义:

qv F B 洛

电磁学是研究电磁场与电荷间相互作用及运动规律的,电磁场对电荷有作用力,通过电场对电荷的作用力引入了电场强度E ,所以通过磁场对运动电荷的作用力来引入磁感应强度B 是合适的。从理论上讲,这种定义B 的方法也比较本质、严谨,所以许多教材中采用这种定义方法,但这种定义方法比较抽象,要求学习者有较高的抽象思维能力和推理能力。

选自人民教育出版社高中物理选修3-1《教师教学用书》

LISP语言教程

LISP语言教程 作者:牛魔王 — 上次修改时间: 2007-03-22 13:13 Scheme 语言是LISP语言的一个方言(或说成变种),它诞生于1975年的MIT,对于这个有近三十年历史的编程语言来说,它并没有象C++,java,C#那样受到商业领域的青睐,在国内更是显为人知。但它在国外的计算机教育领域内却是有着广泛应用的,有很多人学的第一门计算机语言就是Scheme语言。Scheme 语言概要 Author:宋国伟吉林省德惠市信息中心 Date:2003 年12 月01 日 Scheme 语言是LISP语言的一个方言(或说成变种),它诞生于1975年的MIT,对于这个有近三十年历史的编程语言来说,它并没有象C++,java,C#那样受到商业领域的青睐,在国内更是显为人知。但它在国外的计算机教育领域内却是有着广泛应用的,有很多人学的第一门计算机语言就是Scheme语言。 作为Lisp 变体,Scheme 是一门非常简洁的计算语言,使用它的编程人员可以摆脱语言本身的复杂性,把注意力集中到更重要的问题上,从而使语言真正成为解决问题的工具。本文分为上、下两部分来介绍scheme 语言。一.Scheme语言的特点

Scheme 语言是LISP语言的一个方言(或说成变种),它诞生于1975年的MIT,对于这个有近三十年历史的编程语言来说,它并没有象C++,java,C#那样受到商业领域的青睐,在国内更是显为人知。但它在国外的计算机教育领域内却是有着广泛应用的,有很多人学的第一门计算机语言就是Scheme语言。 它是一个小巧而又强大的语言,作为一个多用途的编程语言,它可以作为脚本语言使用,也可以作为应用软件的扩展语言来使用,它具有元语言特性,还有很多独到的特色,以致于它被称为编程语言中的"皇后"。 下面是洪峰对Scheme语言的编程特色的归纳: ?词法定界(Lexical Scoping) ?动态类型(Dynamic Typing) ?良好的可扩展性 ?尾递归(Tail Recursive) ?函数可以作为值返回 ?支持一流的计算连续 ?传值调用(passing-by-value) 术运对 ?算算相独立 本文的目的是让有编程基础(那怕是一点点)的朋友能尽快的掌握Scheme语言语规则读发现经Scheme语言了,那么我的的法,如果您在完本文后,自己已会用 目的就达到了。

AutoLISP 基础——认识自定义函数

AutoLISP基础——认识自定义函数 (本文由LL_J?认识自定义函数?和?Autolisp编程心得?两篇巨著合成,并融入了其他人的一些经验,以快速打通你的任督二脉——自贡黄明儒注) 一、初识Lisp 在AutoCad命令输入(+ 1 2 3),回车返回6,如下 命令: (+ 1 2 3) 6 恭喜你,你已经会写Lisp程序了。这里,我们用到了一个系统定义的函数+,这个函数的作用就是对后面的数字求和。 上式一对英文括号组成的表达式,称之为表,Lisp语言也称为表的语言。表有两种形式,一种是?口袋式?表;一种是?函数式?表。前者如’(0 0)表示一个2维点,前面加’表示此表不求值。如果不加‘,则通常是认为是?函数式?表。?函数式?表如下: ①结构特点:左括号(紧跟函数,函数所需要的参数,右括号)结束。 ②函数是指:系统定义的函数、自定义的函数、匿名函数lambda。如 ((lambda(x y z) (* x y z)) 3 4 5)是合理的。 ③参数可以是:数字(整数、实数)、字符串、T、nil、表(如果此 表是表、函数,就构成了复杂表,这就是lisp程序)、函数。 ④表可以作为函数的参数。如(+ 1 (- 5 2) 3)中,表(- 5 2)就作为+函数 的参数。 ⑤表的返回值也可以传递给其它变量,如(setq x (+ 1 2 3)) ⑥接受输入参数,如(- 5 2)中,-函数接受5和2两个参数。 二、什么是函数 函数一词最早来源于数学,维基百科这样说:函数是将唯一的输出值赋予每一输入的"法则"以及该输出值与对应输入值的集合。 在计算机领域,对函数并没有一个完整的定义,百度百科有这样一句话:"许多程序设计语言中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,所以,函数也可以说是许多代码的集合,这就是程序中的函数。 综合以上描述,我们可以看到"函数"的基本组成: 输入值:一般称为参数; 表达式:函数体,是代码的集合,共同组成上面所说的"法则";

第五章第二节AUTOLISP程序设计简介

§5.2 AutoLISP程序设计 一、概述 LISP语言(List Processing Language的缩写)是一种表处理语言。 因为LISP在描述表方面有独到之处,且本身灵活而精巧,自创立以来,在人工智能的程序设计中得到广泛应用。在英、美等国应用尤为普遍。 AutoLISP是LISP语言的一个版本,其独特性在于专门为AutoCAD开发的。所以AutoLISP仅能运行于AutoCAD软件包环境里。 同样,也正是在AutoCAD内置AutoLISP这样一种灵活、精巧的开发语言,使得AutoCAD得到进一步广泛使用。 1. AutoLISP特点: (1)AutoLISP语言是一种仅能以解释方式运行于AutoCAD内的程序设计语言。 即:脱离AutoCAD环境,它就不能运行。 (2)AutoLISP语言是函数型语言,其函数和数据形式是一致的,即(function argument) ·function(函数名):内建函数或用户自定义函数名; ·argument(参数):参数种类: ①变量(Varibles) ②常量(Constants) ③其他函数(function)所以表达式可以嵌套. ④标志数(flag) ⑤可选性参数(optional parameters) 因此,表达式的形式是:“先说做什麽,再说对谁做”。 (3)可以在AutoLISP程序中引用AutoCAD的几乎所有功能进行图形处理的自动化,尤 其是较深层的应用——对象数据库的操作。 在Visual LISP的协助下,对于AutoCAD进行操作功能上的讨论,LISP仅比ARX少一个功能。 在AutoCAD R14已经不再使用ADS程序设计,取而代之的是ARX 程序设计模式。ARX一般是在AutoCAD和开发商中使用。使用Visual C++作为基本程序设计语言,其效率、数据处理和软硬件的控制能力

数字测图原理与应用——Lisp语言的学习和使用

数字测图原理与应用 ——Lisp语言的学习和使用 主要内容 AutoLisp语言介绍 AutoLisp语言的基本知识 赋值与数值计算函数 自定义函数 程序分支与循环函数 逻辑运算函数 字符串与类型转换函数 表处理函数 交互数据输入函数及相关的计算函数 与文件有关的函数 实体和设备访问类函数 其它函数

一、AutoLisp语言介绍 LISP(List Processing)是一种计算机的表处理语言。LISP语言是人工智能领域中广泛应用的一种程序语言。 AutoLISP语言是一种运行在AutoCAD环境下的LISP编程语言,或称为AutoCAD的一种嵌入式语言。它采用了与CommandLISP(一种通用的LISP语言版本)相近的语法及习惯约定,并吸收了LISP语言的主要函数,同时增加了针对AutoCAD特点的许多功能,如:可以把AutoLISP和AutoCAD的绘图命令透明地结合起来,使设计和绘图完全融为一体。利用AutoLISP语言编程可以实现对AutoCAD当前图形数据库进行直接访问和修改。 在LISP语言中,最基本的数据类型是符号表达式。LISP语言的特点是程序和数据都采用符号表达式的形式,即一个LISP程序可以把另一个LISP程序作为它的数据进行处理。因此使用LISP语言编程十分灵活,看起来是一个一个的函数调用。支持递归定义也是Auto LISP语言的重要特性。 AutoLISP语言是提供给用户的主要二次开发工具之一。用AutoLISP语言编写应用程序,可以为AutoCAD增加新的命令或修改AutoCAD,以适应用户的特殊需要。AutoCAD软件的开发者——AutoDesk公司许诺,将保证今后AutoCAD 软件对AutoLISP语言的支持。掌握使用和编制AutoLISP应用程序的方法和技术将大大提高用户的工作效率和二次开发水平,增强AutoCAD的灵活性,并将得到长期、稳定的技术支持。

LISP语言教程

LISP语言教程 作者:牛魔王—上次修改时间: 2007-03-22 13:13 Scheme 语言是LISP语言的一个方言(或说成变种),它诞生于1975年的MIT,对于这个有近三十年历史的编程语言来说,它并没有象C++,java,C#那样受到商业领域的青睐,在国内更是显为人知。但它在国外的计算机教育领域内却是有着广泛应用的,有很多人学的第一门计算机语言就是Scheme语言。 Scheme 语言概要 Author: 宋国伟吉林省德惠市信息中心 Date: 2003 年 12 月 01 日 Scheme 语言是LISP语言的一个方言(或说成变种),它诞生于1975年的MIT,对于这个有近三十年历史的编程语言来说,它并没有象C++,java,C#那样受到商业领域的青睐,在国内更是显为人知。但它在国外的计算机教育领域内却是有着广泛应用的,有很多人学的第一门计算机语言就是Scheme语言。 作为Lisp 变体,Scheme 是一门非常简洁的计算语言,使用它的编程人员可以摆脱语言本身的复杂性,把注意力集中到更重要的问题上,从而使语言真正成为解决问题的工具。本文分为上、下两部分来介绍 scheme 语言。 一.Scheme语言的特点 Scheme 语言是LISP语言的一个方言(或说成变种),它诞生于1975年的MIT,对于这个有近三十年历史的编程语言来说,它并没有象C++,java,C#那样受到商业领域的青睐,在国内更是显为人知。但它在国外的计算机教育领域内却是有着广泛应用的,有很多人学的第一门计算机语言就是Scheme语言。 它是一个小巧而又强大的语言,作为一个多用途的编程语言,它可以作为脚本语言使用,也可以作为应用软件的扩展语言来使用,它具有元语言特性,还有很多独到的特色,以致于它被称为编程语言中的"皇后"。 下面是洪峰对Scheme语言的编程特色的归纳: ?词法定界(Lexical Scoping) ?动态类型(Dynamic Typing) ?良好的可扩展性 ?尾递归(Tail Recursive) ?函数可以作为值返回 ?支持一流的计算连续

Lisp 入门教程

Lisp 入门教程 作者:Geoffrey J. Gordon 1993/02/05 星期五 修订:Bruno Haible 翻译:刘鑫 整理:张泽鹏 2011/06/24 星期五 注意:这份 Common Lisp 入门教程是针对 CMU 环境编写,所以在其它环境运行 Lisp 时可能会有细节上的区别。 附: 据我所知最好的 Lisp 书籍是:Guy L. Steele Jr. 《Common LISP: the Language》 Digital Press. 1984. 第一版很容易阅读,第二版介绍了更新的标准。(两个标准的差异很小,对于粗心的程序员没有什么区别。) 我还记得 Dave Touretsky 写了一本,不过我从来没读过,所以不能对那本书发表评论。 Symbols 符号仅仅是字符串。你可以在符号中包含字母、数字、连接符等等,唯一的限制就是要以字母开头。(如果你只输入数字,最多再以一个连接符开头的话,LISP会认为你输入了一个整数而不是符号。)例如: 接下来我们可以做些事情。(">"标记表示你向LISP输入的东西,其它的是LISP 打印返回给你的。";"是LISP的注释符:";"后面的整行都会被忽略。) 有两个特殊的符号, t 和 nil 。 t 的值总是定义为 t,nil 的值总是定义为 nil 。LISP用 t 和 nil 代表 true 和false。以下是使用这个功能的 if 语句,后面再做详细说明: 最后一个例子看起来很怪,但是没有错:nil 代表 false ,其它任意值代表 true。(为了代码清晰,在没有什么特别原因的情况下,我们用t代表true。) t 和 nil 这样的符号被称为自解析符号,因为他们解析为自身。自解析符号称为关键字;任一以冒号开头的符号都是关键字。(下面是一些关键字的应用)如下所示:

lisp功能函数

一、数学运算功能函数 1.l(十数值数值…)返回:累计实数或整数数值 1.2(一数值数值…)返回:差值 1.3(* 数值数值…)返回:所有数值乘积 1.4(/ 数值数值…)返回:第一个数值除以第二个以后数值的商 1.5(l十数值)返回:数值十l l. 6(1—数值)返回:数值一l l.7(abs 数值)返回:数值的绝对值 1.8(atan 数值)返回:反正切值 1.9(cos 角度)返回:角度的余弦值,角度值为弧度 1.10(exp 数值)返回:数值的指数 1.11(expt 底数指数)返回:底数的指数值 1.12(fix 数值)返回:将数值转换为整数值 1.14(gcd 数值1 数值2)返回:两数值的最大公因数 1.15(log 数值)返回:数值的自然对数值 1.16(max 数值数值…)返回:数值中的最大值 1.17(min 数值数值…)返回:数值中的最小值 1.18 pi 常数∏,其值约为3.1415926 1.19(rem 数值1数值2)返回:M数值的相除的余数 l.20(sin 角度)返回:角度的正旋值,角度值为弧度 1.21(sqrt 数值)返回:数值的平方根 二、检验与逻辑运算功能函数 2.l(= 表达式1 表达式2)比较表达式1是否等于式2,适用数值及字符串 2.2 (/= 表达式1 表达式2)比较表达式1是否大于等于表达式2

2.3(<表达式1 表达式2) 比较表达式1是否<小于表达式2 2.4(<= 表达式1 表达式2)比较表达式1是否<一小于等于表达式2 2.5(>表达式1 表达式2)比较表达式1是否>大于表达式2 2.6(>= 表达式1 表达式2)比较表达式1是否大于等于表达式2 2.7 (~数值)返回:数值的位not值,(1的补码) 2.8 (and 表达式1 表达式2…)返回:逻辑and的结果 2.9(boole 函数整数整数…)返回:位式布尔运算 2.10(eq 表达式1 表达式2)比较表达式1与表达式2是否相同,适用列表比较(实际相同) 2.11(equal 表达式1表达式2[差量])比较表达式1与表达式2是否相同,差量可省略(内容相同) 三、转换运算功能函数 3.l(angtof 字符串[模式])返回:角度值的字符串转成实数 3.2(angtos 角度[模式[精度]])返回:角度转成的字符串值 3.3(atof 字符串)返回:字符串转成实数值 3.4 (atoi 字符串)返回:字符串转成整数值 3.5 (cvunit 数值原始单位转换单位)返回:数值转换单位后的值转换根据acad.nut文件 3.6(distof 字符串[模式])返回:根据模式将字符串转成实数值 3.7(itoa 整数)返回:整数转成字符串 3.8(rtos 数值模式[精度])返回:实数转成字符串 3.9 (trans 点原位置新位置[位移])返回:转换坐标系统值 四、列表处理功能函数 4.1 (append 列表列表……)结合所有列表成一个列表 4.2(assoc 关键元素联合列表)根据关键元素找寻联合列表中关系信息

Lisp语的发展

Lisp语言的发展 国家智能计算机研究开发中心刘晓华 一、引言 Lisp是一个优美的高级语言,它的发展经历了漫长的复杂的历程。在Lisp作为高级语言 出现以前,大约经过了两年的酝酿(1956~1958),形成了Lisp的许多基本设计思想。1958年 秋进入Lisp的实现与初步应用时期,这一时期(1958~1962),Lisp的发展基本上是单线的。1962年以后Lisp的发展变成多线,在这一段时期(1962~1984),不同的机构团体提出许多不 同的思想,形成了"百家争鸣"的局面。直到Common Lisp(1984)出现以后,Lisp的发展才进入 标准化时代。不同寻常的发展过程使得Lisp成为继Fortran语言之后第二个历史最长使用最广泛的语言。 二、Lisp前期和早期(1956~1962) Lisp前期(1956~1958)始于John McCarthy的一种愿望:为IBM 704计算机提供一个代数 表处理语言,以便适用于人工智能(AI)的研究。这种愿望是1956年夏在Dartmouth举行的AI研究计划讨论会上他受到Newell,Shaw和Simon描述的IPL2——表处理语言的启发而萌发的。 但他并不想直接采用IPL2,原因有两个:①IPL2是用来实现逻辑定理证明的,而且依赖于Ran d公司的JOHNNIAC机器;②Fortran语言结构用来进行表处理也是很有吸引力的(后面我们将 会谈到)。这种愿望最终变成现实:IBM公司慷慨承担了在MIT成立New England Computatio n Center和开发一个证明平面几何定理的程序,当时John McCarthy是这个项目的顾问。 John McCarthy选择表作为程序句子的基本表示单位。表结构不仅能表示符号信息,而 且适合逻辑推理,即适合进行符号处理。尽管有其他一些采用传统表示方法的符号处理系统 ,但McCarthy放弃了传统的中缀表示方法而采用了前缀形式,因而能很快地决定机器下一步 应该采取的动作。这个特征可能是Lisp在和其他语言的竞争中取得成功的原因。但是如何 在机器上存储表结构和对表结构进行操作,这是一个技术问题,而且和具体的机器有关,如机 器字及其bit数。 最初,提出了对表结构进行操作的基本操作。这些操作都是针对寄存器的字或地址进行 的。cwr表示取寄存器中字的内容,car表示取寄存器中地址的内容,还定义了cdr、cpr和ct r三个类似的函数,cons最初是定义为一个例程而不是一个函数。这些思想几乎都是在Dart month的New England Computation Center形成的,但是没有在机器上实现。 同时进行的另一部分工作,是在Fortran中实现一个表处理语言,当时IBM有一个平面几 何证明的项目。在McCarthy的建议下,N.Rochester和H.Gelerneter等决定在Fortran中增加关于表处理的功能,提出了FLPL语言(Fortran表处理语言),把cons处理为一个函数。尽管F LPL能容易地处理表达式和编写平面几何证明程序,但缺少条件表达式和递归功能。 McCarthy在1957~1958年间提出了条件表达式,并首先用于Fortran程序。到1958年夏 天,这些思想基本成熟,并且超过了FLPL:(1)用条件表达式定义递归函数,把各种情形组合在 一个公式中;(2)引入church的入概念,函数可以作为表的参数。通过修补Fortran来进行表 处理,无论从技术上还是策略上都很困难,因此需要一个崭新的表处理语言。 Lisp语言终于诞生。1985年秋天,MIT的McCarthy(电子工程系)和Marvin Minsky(数学 系)领导的小组着手实现一个Lisp编译器,以便为Lisp程序提供一个运行环境。Lisp程序是 用一个类似于Fortran的M表达式编写的,通过手工方式将各种各样的函数汇编成汇编语言, 在Lisp"环境"下运行。这时的Lisp除了提供一些基本功能外还实现了输入(READ)和输出(P RINT)Lisp表结构。

AutoLisp功能函数大全

AutoLisp函数大全 一、数学运算功能函数 1.l(十数值数值…)返回:累计实数或整数数值 1.2(一数值数值…)返回:差值 1.3(* 数值数值…)返回:所有数值乘积 1.4(/ 数值数值…)返回:第一个数值除以第二个以后数值的商 1.5(l十数值)返回:数值十l l. 6(1—数值)返回:数值一l l.7(abs 数值)返回:数值的绝对值 1.8(atan 数值)返回:反正切值 1.9(cos 角度)返回:角度的余弦值,角度值为弧度 1.10(exp 数值)返回:数值的指数 1.11(expt 底数指数)返回:底数的指数值 1.12(fix 数值)返回:将数值转换为整数值 1.14(gcd 数值1 数值2)返回:两数值的最大公因数 1.15(log 数值)返回:数值的自然对数值 1.16(max 数值数值…)返回:数值中的最大值 1.17(min 数值数值…)返回:数值中的最小值 1.18 pi 常数∏,其值约为3.1415926 1.19(rem 数值1数值2)返回:M数值的相除的余数 l.20(sin 角度)返回:角度的正旋值,角度值为弧度 1.21(sqrt 数值)返回:数值的平方根 二、检验与逻辑运算功能函数 2.l(= 表达式1 表达式2)比较表达式1是否等于式2,适用数值及字符串2.2 (/= 表达式1 表达式2)比较表达式1是否大于等于表达式2 2.3(<表达式1 表达式2) 比较表达式1是否<小于表达式2 2.4(<= 表达式1 表达式2)比较表达式1是否<一小于等于表达式2 2.5(>表达式1 表达式2)比较表达式1是否>大于表达式2 2.6(>= 表达式1 表达式2)比较表达式1是否大于等于表达式2

lisp语言入门

Lisp语言入门 Lisp是一门历史悠久的语言,全名叫LISt Processor,也就是“表处理语言”,它是由John McCarthy于1958年就开始设计的一门语言。和Lisp同时期甚至更晚出现的许多语言如Algo等如今大多已经消亡,又或者仅仅在一些特定的场合有一些微不足道的用途,到现在还广为人知的恐怕只剩下了Fortran和COBOL。但唯独Lisp,不但没有随着时间而衰退,反倒是一次又一次的焕发出了青春,从Lisp分支出来的Scheme、ML等语言在很多场合的火爆程度甚至超过了许多老牌明星。那么这颗常青树永葆青春的奥秘究竟在哪里呢? 如果你只接触过C/C++、Pascal这些“过程式语言”的话,Lisp可能会让你觉得十分不同寻常,首先吸引你眼球(或者说让你觉得混乱的)一定是Lisp程序中异常多的括号,当然从现在的角度来讲,这种设计的确对程序员不大友好,不过考虑到五六十年代的计算机处理能力,简化语言本身的设计在那时算得上是当务之急了。 Lisp的基本语法很简单,它甚至没有保留字(有些语言学家可能对这一点有异议,别怕,我听你们的),它只有两种基本的数据,仅有一种基本的语法结构就是表达式,而这些表达式同时也就是程序结构,但是正如规则最简单的围棋却有着最为复杂的变化一样,Lisp使用最基本的语言结构定义却可以完成其它语言难于实现的、最复杂的功能。 废话少说,现在我们就来看看Lisp语言中的基本元素。 Lisp的表达式是一个原子(atom)或表(list),原子(atom)是一个字母序列,如a b c;表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号中,如: a b c () (a b c x y z) (a b(c)d) 最后一个表是由四个元素构成的,其中第三个元素本身也是一个表。 正如算数表达式1+1有值2一样,Lisp中的表达式也有值,如果表达式e得出值v,我们说e返回v。如果一个表达式是一个表,那么我们把表中的第一个元素叫做操作符,其余的元素叫做自变量。

AutoLISP 函数大全

一、数学运算功能函数 l(+数值数值…) 返回:累计实数或整数数值 2(-数值数值…) 返回:差值 3(*数值数值…) 返回:所有数值乘积 4(/数值数值…) 返回:第一个数值除以第二个以后数值的商 5(l+ 数值) 返回:数值+l 6(1- 数值) 返回:数值-l 7(abs数值) 返回:数值的绝对值 8(atan数值) 返回:反正切值 9(cos角度) 返回:角度的余弦值,角度值为弧度 10(exp数值) 返回:数值的指数 11(expt底数指数) 返回:底数的指数值 12(fix数值) 返回:将数值转换为整数值 13(float数值) 返回:将数值转换为实数值 14(gcd数值1数值2) 返回:两数值的最大公因数 15(log数值) 返回:数值的自然对数值 16(max数值数值…) 返回:数值中的最大值 17(min数值数值…) 返回:数值中的最小值 18pi 常数∏,其值约为3.1415926 19(rem数值1数值2) 返回:M数值的相除的余数 20(sin角度) 返回:角度的正旋值,角度值为弧度 21(sqrt数值) 返回:数值的平方根 二、检验与逻辑运算功能函数 l(=表达式1表达式2) 比较表达式1是否等于式2,适用数值及字符串 2(/=表达式1表达式2) 比较表达式1是否大于等于表达式2 3(<表达式1表达式2) 比较表达式1是否<小于表达式2 4(<=表达式1表达式2) 比较表达式1是否<一小于等于表达式2 5(>表达式1表达式2) 比较表达式1是否>大于表达式2 6(>=表达式1表达式2) 比较表达式1是否大于等于表达式2 7(~数值) 返回:数值的位not值,(1的补码) 8(and表达式1表达式2…) 返回:逻辑and的结果 9(boole函数整数整数…) 返回:位式布尔运算 10(eq表达式1表达式2) 比较表达式1与表达式2是否相同,适用列表比较(实际相同) 11(equal表达式1表达式2[差量])比较表达式1与表达式2是否相同,差量可省略(内

AutoLISP函数

以下为十年前纯手工录入的函数参考手册,以分享给爱好LISP这方面的朋友参考! AutoLISP提供了大量的预定义函数。若将函数名(大小写都可)作为表中的第一个元素函数变元(若有的话)作为表中后面的元素,就可以调用那个函数。本章按字母顺序列出AutoLISP所有基本函数。用户会发现其中许多函数都是标准函数,可在LISP程序设计语言中找到。还有一些函数是由 AutoCAD提供的且专用于交互图形环境。 1 FLATLAND 系统变量--与老版本的兼容性 AutoLISP版本10支持AutoCAD的最新增强型三维图形功能,则时继续保证与AutoCAD 老版本的兼容性。FLATLAND系统变量就是用来控制该兼容性的。当FLATLAND为零时,实 现新三维功能;否则各函数操作与AutoLISP版本9的一样。FLATLANDR的设置作用于下列 AutoLISP函数: DISTANCE GRREAD POLAR ENTGET INITGET TBLNEXT GETDIST INTERS TBLSEARCH GETPOINT OSNAP 在各函数说明中,已注明FLATLAND对上述函数起作用的方式。 2 ( + <数> <数> ...) 这个函数返回所有<数>的总和。其中的<数>可以是整型或实型的。如果所有的<数> 都是整数,其结果也是整数;如果其中有一个是实型的,那么其它整型数将转换为实型 数结果将是实型数。例如: (+ 1 2) returns 3 (+ 1 2 3 4.5) returns 10.5 (+ 1 2 3 4.0) returns 10.0 3 ( - <数> <数> ...) 这个函数把第一个<数>减去第二个<数>,返回它们的差。如果给定的<数>多于两个, 那么将第一个<数>减去其后所有数之和,并返回最后的结果。如果只给了一个<数>,即返 回零减这个<数>的结果。此函数中的<数>可以是实型或整型,按标准规则进行类型转换。 例如: (- 50 40) returns 10 (- 50 40.0 2) returns 8.0 (- 50 40.0 2.5) returns 7.5 (- 8) returns -8 4 (* <数> <数>...) 这个函数返回所有<数>的乘积.其中<数>可以是实型或整型.按标准规则进行类型转换 例如: (* 2 3) returns 6 (* 2 3 4.0) returns 24.0 (* 3 -4.5) returns -13.5 5 (/ <数> <数>...) 这个函数将第一个<数>除以第二个<数>,返回其商.如果给出的<数>多于两个,则把第 一个<数>除以其它所有<数>的乘积,并返回最后的商.此函数中的<数>可以是实型或整型, 类型的转换按标准规则进行.例如:

AUTOLISP函数参考

AUTO LISP函数参考1(10版本) 以下为十年前纯手工录入的函数参考手册,以分享给爱好LISP这方面的朋友参考! AutoLISP提供了大量的预定义函数。若将函数名(大小写都可)作为表中的第 一个元素函数变元(若有的话)作为表中后面的元素,就可以调用那个函数。本 章按字母顺序列出AutoLISP所有基本函数。用户会发现其中许多函数都是标准函数,可在LISP程序设计语言中找到。还有一些函数是由AutoCAD提供的且专用于交互图形环境。 1 FLATLAND 系统变量--与老版本的兼容性 AutoLISP版本10支持AutoCAD的最新增强型三维图形功能,则时继续保证与AutoCAD 老版本的兼容性。FLATLAND系统变量就是用来控制该兼容性的。当FLATLAND 为零时,实 现新三维功能;否则各函数操作与AutoLISP版本9的一样。FLATLANDR的设置作用于下列 AutoLISP函数: DISTANCE GRREAD POLAR ENTGET INITGET TBLNEXT GETDIST INTERS TBLSEARCH GETPOINT OSNAP 在各函数说明中,已注明FLATLAND对上述函数起作用的方式。

2 ( + <数> <数> ...) 这个函数返回所有<数>的总和。其中的<数>可以是整型或实型的。如果所有的<数> 都是整数,其结果也是整数;如果其中有一个是实型的,那么其它整型数将转换为实型 数结果将是实型数。例如: (+ 1 2) returns 3 (+ 1 2 3 4.5) returns 10.5 (+ 1 2 3 4.0) returns 10.0 3 ( - <数> <数> ...) 这个函数把第一个<数>减去第二个<数>,返回它们的差。如果给定的<数>多于两个, 那么将第一个<数>减去其后所有数之和,并返回最后的结果。如果只给了一个 <数>,即返 回零减这个<数>的结果。此函数中的<数>可以是实型或整型,按标准规则进行类型转换。 例如: (- 50 40) returns 10 (- 50 40.0 2) returns 8.0 (- 50 40.0 2.5) returns 7.5 (- 8) returns -8

LISP编程举例

Lisp是一门历史悠久的语言,全名叫LISt Processor,也就是“表处理语言”,它是由John McCarthy于1958年就开始设计的一门语言。和Lisp同时期甚至更晚出现的许多语言如Algo 等如今大多已经消亡,又或者仅仅在一些特定的场合有一些微不足道的用途,到现在还广为人知的恐怕只剩下了Fortran和COBOL。但唯独Lisp,不但没有随着时间而衰退,反倒是一次又一次的焕发出了青春,从Lisp分支出来的Scheme、ML等语言在很多场合的火爆程度甚至超过了许多老牌明星。那么这颗常青树永葆青春的奥秘究竟在哪里呢? 如果你只接触过C/C++、Pascal这些“过程式语言”的话,Lisp可能会让你觉得十分不同寻常,首先吸引你眼球(或者说让你觉得混乱的)一定是Lisp程序中异常多的括号,当然从现在的角度来讲,这种设计的确对程序员不大友好,不过考虑到五六十年代的计算机处理能力,简化语言本身的设计在那时算得上是当务之急了。 Lisp的基本语法很简单,它甚至没有保留字(有些语言学家可能对这一点有异议,别怕,我听你们的),它只有两种基本的数据,仅有一种基本的语法结构就是表达式,而这些表达式同时也就是程序结构,但是正如规则最简单的围棋却有着最为复杂的变化一样,Lisp使用最基本的语言结构定义却可以完成其它语言难于实现的、最复杂的功能。 废话少说,现在我们就来看看Lisp语言中的基本元素。 Lisp的表达式是一个原子(atom)或表(list),原子(atom)是一个字母序列,如abc;表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号中,如: abc () (abc xyz) (a b(c)d) 最后一个表是由四个元素构成的,其中第三个元素本身也是一个表。 正如算数表达式1+1有值2一样,Lisp中的表达式也有值,如果表达式e得出值v,我们说e返回v。如果一个表达式是一个表,那么我们把表中的第一个元素叫做操作符,其余的元素叫做自变量。 正如欧几里德的几何世界中有五个公理一样,我们在这里给出Lisp世界中的7个公理(基本操作符): (quote x)返回x,我们简记为'x (atom x)当x是一个原子或者空表时返回原子t,否则返回空表()。在Lisp中我们习惯用原子t表示真,而用空表()表示假。 >(atom'a) t >(atom'(a b c)) () >(atom'())

auto lisp 数组如何建立

Auto lisp 数组如何建立 例如: x=1 y=2 当x<5时x+1,y+1,希望得到数组(1 2 2 3 3 4 4 5 5 6 )(defun temp ( x y z / lis xi ) (setq xi 0 lis '()) (while (< xi z) (setq lis (cons (+ x xi) lis) lis (cons (+ y xi) lis) xi (1+ xi)) ) (reverse lis) ) 讨论了变量以后让我们来看看Lisp中的数组,对于非Lisp程序员来讲这是再自然不过的了,很多编程语言的教材上都是在讲述了一般性语法后讲解数组。不过,Lisp程序员可能会有点疑问,为什么不开始介绍列表呢?列表作为Lisp语言的关键在Lisp中起到了重要的作用,所以很多有关Lisp的材料都是以介绍列表开始,这对于一般程序员来讲有在思路转换上有点困难。所以在这里还是按一般程序员的习惯,先介绍数组等常见的数据结构。 首先是有关数组的定义,Lisp中数组的定义使用make-array函数,下面是数组定义的样例:[plain]view plaincopyprint? (setf test-array-1 (make-array 10 :initial-element 5)) 以上代码定义了一个数组名为test-array-1,数组元素有10个,元素初值为5. 其中数组是通过(make-array 10 :initial-element 5)生成的,生成后通过setf赋予了变量test-array-1。 定义了数组后就需要开始使用它,使用过程需要知道一个数组的长度。数组的长度可以使用函数length获取,下面是样例: [plain]view plaincopyprint? (length test-array-1) 以上语句通过length获取test-array-1的长度,按以上的定义,这里会返回10,表示数组test-array-1中有10个元素。 对数组的进一步操作最常见的就是获取指定位置的元素,如获取一个数组第5个元素。 获取数组的某一个元素通过函数aref完成,下面是样例 [plain]view plaincopyprint? (aref test-array-1 5) 以上代码获取了test-array-1中的第6个元素。这里注意代码中使用了数字5,取出来的元素是第6个,因为Lisp和其它一般语言一样将0作为数组的起始下标。 结合以上几个函数,遍历打印一个数组的代码如下: [plain]view plaincopyprint? (setf end-index (- (length test-array-1 ) 1)) (loop for i from 0 to end-index do

autolisp函数大全实例

目录 函数大全 (1) 一、数学运算功能函数 (1) 二、检验与逻辑运算功能函数 (2) 三、转换运算功能函数 (2) 四、列表处理功能函数 (3) 五、字符串、字符、文件处理函数 (4) 六、等待输入功能函数 (4) 七、几何运算功能函数 (5) 八、对象处理功能函数 (5) 九、选择集、符号表处理函数 (6) 十、AutoCAD相关查询、控制功能函数 (6) 十一、判断式、循环相关功能函数 (6) 十二、函数处理、定义、追踪与错误处理功能函数 (7) 十三、显示、打印控制功能函数 (7) 十四、符号、元素、表达式处理功能函数 (8) 十五、ADS、ARX、AutoLISP加载与卸载函数 (9) 十六、内存空间管理函数 (9) 十七、其它重要的功能函数 (9) 十八、ADS、ARX外部定义的3D函数 (9) 十九、ADS、ARX外部定义的数据库相关函数 (10) 函数大全 一、数学运算功能函数 1.l(十数值数值…)返回:累计实数或整数数值 1.2(一数值数值…)返回:差值 1.3(* 数值数值…)返回:所有数值乘积 1.4(/ 数值数值…)返回:第一个数值除以第二个以后数值的商1.5(l十数值)返回:数值十l l. 6(1—数值)返回:数值一l l.7(abs 数值)返回:数值的绝对值 1.8(atan 数值)返回:反正切值 1.9(cos 角度)返回:角度的余弦值,角度值为弧度

1.10(exp 数值)返回:数值的指数 1.11(expt 底数指数)返回:底数的指数值 1.12(fix 数值)返回:将数值转换为整数值 1.14(gcd 数值1 数值2)返回:两数值的最大公因数 1.15(log 数值)返回:数值的自然对数值 1.16(max 数值数值…)返回:数值中的最大值 1.17(min 数值数值…)返回:数值中的最小值 1.18 pi 常数∏,其值约为3.1415926 1.19(rem 数值 1数值 2)返回:M数值的相除的余数 l.20(sin 角度)返回:角度的正旋值,角度值为弧度 1.21(sqrt 数值)返回:数值的平方根 二、检验与逻辑运算功能函数 2.l(= 表达式1 表达式2)比较表达式1是否等于式2,适用数值及字符串 2.2 (/= 表达式1 表达式2)比较表达式1是否大于等于表达式2 2.3(<表达式1 表达式2) 比较表达式1是否<小于表达式2 2.4(<= 表达式1 表达式2)比较表达式1是否<一小于等于表达式2 2.5(>表达式1 表达式2)比较表达式1是否>大于表达式2 2.6(>= 表达式1 表达式2)比较表达式1是否大于等于表达式2 2.7 (~数值)返回:数值的位 not值,(1的补码) 2.8 (and 表达式1 表达式2…)返回:逻辑and的结果 2.9(boole 函数整数整数…)返回:位式布尔运算 2.10(eq 表达式1 表达式2)比较表达式1与表达式2是否相同,适用列表比较(实际相同) 2.11(equal 表达式 1表达式 2[差量])比较表达式 1与表达式 2是否相同,差量可省略(内容相同) 三、转换运算功能函数 3.l(angtof 字符串[模式])返回:角度值的字符串转成实数 3.2(angtos 角度[模式[精度]])返回:角度转成的字符串值 3.3(atof 字符串)返回:字符串转成实数值 3.4 (atoi 字符串)返回:字符串转成整数值

相关主题
文本预览
相关文档 最新文档