Lisp入门教程

Lisp入门教程
Lisp入门教程

Lisp入门教程(刘鑫最新翻译)

Common LISP Hints

Geoffrey J. Gordon

Friday, February 5, 1993

Modified by

Bruno Haible

简体中文版翻译:

刘鑫

Note: This tutorial introduction to Common Lisp was written for the CMU environment, so some of the details of running lisp toward the end may differ from site to site.

注意:这份 Common Lisp 入门教程是针对 CMU

环境编写,所以在其它环境运行

LISP时可能会有细节上的区别。

Further Information

附:

The best LISP textbook I know of is

Guy L. Steele Jr. _Common LISP: the Language_. Digital Press. 1984.

据我所知最好的 Lisp 书籍是:

Guy L. Steele Jr. _Common LISP: the Language_. Digital Press. 1984.

The first edition is easier to read; the second describes a more recent standard. (The differences between the two standards shouldn't affect casual programmers.)

第一版很容易阅读,第二版介绍了更新的标准。(两个标准的差异很

小,对于粗

心的程序员没有什么区别。)

A book by Dave Touretsky has also been recommended to me, although I haven't read it, so I can't say anything about it.

我还记得 Dave Touretsky

写了一本,不过我从来没读过,所以不能对那本书

发表评论。

Symbols

符号

A symbol is just a string of characters. There are restrictions on what you can include in a symbol and what the first character can be, but as long as you stick to letters, digits, and hyphens, you'll be safe. (Except that if you use only digits and possibly an initial hyphen, LISP will think you typed an integer rather than a symbol.) Some

examples of symbols:

符号仅仅是字符串。你可以在符号中包含字母、数字、连接符等等,唯一的限制就是要以字母开头。(如果你只输入数字,最多再以一个连接符开头的话,LISP 会认为你输入了一个整数而不是符号。)例如:

a

b

c1

foo

bar

baaz-quux-garply

Some things you can do with symbols follow. (Things after a ">" prompt are what you type to the LISP interpreter, while other things are what the LISP interpreter prints back to you. The ";" is LISP's comment character: everything from a ";" to the end of line is ignored.)

接下来我们可以做些事情。(">"标记表示你向LISP输入的东西,其它的是LISP 打印返回给你的。";"是LISP的注释符:";"后面的整行都会被忽略。)

> (setq a 5) ;store a number as the value of a symbol

5

> a ;take the value of a symbol

5

> (let ((a 6)) a) ;bind the value of a symbol temporarily to 6 6

> a ;the value returns to 5 once the let is finished 5

> (+ a 6) ;use the value of a symbol as an argument to a function

11

> b ;try to take the value of a symbol which has no value

Error: Attempt to take the value of the unbound symbol B

There are two special symbols, t and nil. The value of t is defined always to be t, and the value of nil is defined always to be nil. LISP uses t and nil to represent true and false. An example of this use is in the if statement, described more fully later:

有两个特殊的符号, t 和 nil 。 t 的值总是定义为 t,nil 的值总是定义为 nil 。LISP用 t 和 nil 代表 true 和false。以下是使用这个功能的 if 语句,后面再做详细说明:

> (if t 5 6)

5

> (if nil 5 6)

6

> (if 4 5 6)

5

The last example is odd but correct: nil means false, and anything else means true. (Unless we have a reason to do otherwise, we use t to mean true, just for the sake of clarity.)

最后一个例子看起来很怪,但是没有错:nil 代表 false

,其它任意值代表 true。

(为了代码清晰,在没有什么特别原因的情况下,我们用t代表true。)

Symbols like t and nil are called self-evaluating symbols, because they evaluate to themselves. There is a whole class of self-evaluating symbols called keywords; any symbol whose name starts with a colon is a keyword. (See below for some uses for keywords.) Some examples:

t 和 nil

这样的符号被称为自解析符号,因为他们解析为自身。自解析符号称为

关键字;任一以冒号开头的符号都是关键字。(下面是一些关键字的应用)如下 所示:

> :this-is-a-keyword

:THIS-IS-A-KEYWORD

> :so-is-this

:SO-IS-THIS

> :me-too

:ME-TOO

Numbers

数值

An integer is a string of digits optionally preceded by + or -. A real number looks like an integer, except that it has a decimal point and optionally can be written in scientific notation. A rational looks like two integers with a / between them. LISP supports complex numbers,

which are written #c(r i) (where r is the real part and i is the imaginary part). A number is any of the above. Here are some numbers:

数值类型是数字文本,可能会以 + 或 -

开头。实数和整数很相像,但是它带有

小数点,还可能写成科学计数法。有理数就像是两个整数之间带有一个/。LISP 支

持复数,写为#c(r

i)(r表示实部,i表示虚部)。以上统称为数值。下面是一

些数值:

5

17

-34

+6

3.1415

1.722e-15

#c(1.722e-15 0.75)

The standard arithmetic functions are all available: +, -, *, /, floor, ceiling, mod, sin, cos, tan, sqrt, exp, expt, and so forth. All of them accept any kind of number as an argument. +, -, *, and / return a number according to type contagion: an integer plus a rational is a rational, a rational plus a real is a real, and a real plus a complex is a complex. Here are some examples:

标准的计算函数包括: +, -, *, /, floor, ceiling, mod, sin,

cos, tan,

sqrt, exp, expt

等等。所有这些函数都可以接受任意数值类型参数。+、-、*

/返回尽可能大的类型:一个整数加一个有理数返回有理数,一个有理数加一个实数

是一个实数,一个实数加一个复数是一个复数。如下所示:

> (+ 3 3/4) ;type contagion

15/4

> (exp 1) ;e

2.7182817

> (exp 3) ;e*e*e

20.085537

> (expt 3 4.2) ;exponent with a base other than e

100.90418

> (+ 5 6 7 (* 8 9 10)) ;the fns +-*/ all accept multiple arguments

There is no limit to the absolute value of an integer except the memory size of your computer. Be warned that computations with bignums (as large integers are called) can be slow. (So can computations with rationals, especially compared to the corresponding computations with small integers or floats.)

对于整数来说,唯一的大小限制就是机器的内存。当然大数值运算(这

会调用大整数)可能会很慢。(因此我们可以计算有理数,尤其是小整数和浮点数

的比较运算)

Conses

A cons is just a two-field record. The fields are called "car" and "cdr", for historical reasons. (On the first machine where LISP was implemented, there were two instructions CAR and CDR which stood for "contents of address register" and "contents of decrement register". Conses were implemented using these two registers.)

cons

就是一个包含两个字段的记录。出于历史原因,两个字段分别被称为 "car"和"cdr"。(在第一台实现LISP的机器上,用CAR和CDR代表"地址寄

存器的内容"和"指令寄存器的内容"。Conses的实现主要依靠这两个寄存器。)

Conses are easy to use:

Conses很容易使用:

> (cons 4 5) ;Allocate a cons. Set the car to 4 and the cdr to 5.

(4 . 5)

> (cons (cons 4 5) 6)

((4 . 5) . 6)

> (car (cons 4 5))

4

> (cdr (cons 4 5))

5

Lists

You can build many structures out of conses. Perhaps the simplest is a linked list: the car of each cons points to one of the elements of the list, and the cdr points either to another cons or to nil. You can create such a linked list with the list fuction:

你可以构造conses之外的结构。可能最简单的是链表:每一个cons的car指向链表

的一个元素,cdr指向另一个cons或者nil。我们可以使用list函数构造链表。

> (list 4 5 6)

(4 5 6)

Notice that LISP prints linked lists a special way: it omits some of the periods and parentheses. The rule is: if the cdr of a cons is nil, LISP doesn't bother to print the period or the nil; and if the cdr of cons A is cons B, then LISP doesn't bother to print the period for cons A or the parentheses for cons B. So:

需要注意的是 LISP

用一种特殊的方式打印链表:它忽略掉某些分隔和括号。

规则如下:如果某个 cons 的 cdr 是 nil ,LISP 不打印 nil

和段标记,如果

cons A 的 cdr 是 cons B,LISP不打印 cons B 的括号和 cons A

的分隔符。

如下:

> (cons 4 nil)

(4)

> (cons 4 (cons 5 6))

(4 5 . 6)

> (cons 4 (cons 5 (cons 6 nil)))

(4 5 6)

The last example is exactly equivalent to the call (list 4 5 6). Note that nil now means the list with no elements: the cdr of (a b), a list with 2 elements, is (b), a list with 1 element; and the cdr of (b), a list with 1 element, is nil, which therefore must be a list with no elements.

最后一个例子相当于调用(list 4 5 6)。要注意的是这里

nil 表示没有元素的空

链表:包含两个元素的链表(a

b)中,cdr是(b),一个含有单个元素的链表;包含

一个元素的链表(b),cdr是nil,故此这里必然是一个没有元素的链表。

The car and cdr of nil are defined to be nil.

nil 的 car 和 cdr 定义为nil。

If you store your list in a variable, you can make it act like a stack:

如果你把链表存储在变量中,可以将它当作堆栈来使用:

> (setq a nil)

NIL

> (push 4 a)

(4)

> (push 5 a)

(5 4)

> (pop a)

5

> a

(4)

> (pop a)

4

> (pop a)

NIL

> a

NIL

Functions

You saw one example of a function above. Here are some more:

前面我们讨论过一些函数的例子,这里还有更多:

> (+ 3 4 5 6) ;this function takes any number of arguments

18

> (+ (+ 3 4) (+ (+ 4 5) 6)) ;isn't prefix notation fun?

22

> (defun foo (x y) (+ x y 5)) ;defining a function

FOO

> (foo 5 0) ;calling a function

10

> (defun fact (x) ;a recursive function

(if (> x 0)

(* x (fact (- x 1)))

1))

FACT

> (fact 5)

120

> (defun a (x) (if (= x 0) t (b (- x)))) ;mutually recursive functions

A

> (defun b (x) (if (> x 0) (a (- x 1)) (a (+ x 1))))

B

> (a 5)

T

> (defun bar (x) ;a function with multiple statements in (setq x (* x 3)) ;its body -- it will return the value (setq x (/ x 2)) ;returned by its final statement

(+ x 4))

BAR

> (bar 6)

13

When we defined foo, we gave it two arguments, x and y. Now when we call foo, we are required to provide exactly two arguments: the first will become the value of x for the duration of the call to foo, and the second will become the value of y for the duration of the call. In LISP, most variables are lexically scoped; that is, if foo calls bar and bar tries to reference x, bar will not get foo's value for x.

当我们定义函数的时候,设定了两个参数,x 和

y。现在当我们调用 foo,需要

给出两个参数:第一个在 foo 函数调用时成为 x

的值,第二个成为 y 的值。

在LISP中,大部分的变量都是局部的,如果 foo 调用了

bar ,bar中虽然使用了

名字为x的引用,但bar 得不到 foo 中的 x 。

The process of assigning a symbol a value for the duration of some lexical scope is called binding.

在调用过程中给一个符号赋值的操作被称为绑定。

You can specify optional arguments for your functions. Any argument after the symbol &optional is optional:

我们可以给函数指定可选参数,在符号&optional

之后的参数是可选参数:

> (defun bar (x &optional y) (if y x 0))

BAR

> (defun baaz (&optional (x 3) (z 10)) (+ x z))

BAAZ

> (bar 5)

> (bar 5 t)

5

> (baaz 5)

15

> (baaz 5 6)

11

> (baaz)

13

It is legal to call the function bar with either one or two arguments. If it is called with one argument, x will be bound to the value of that argument and y will be bound to nil; if it is called with two arguments, x and y will be bound to the values of the first and second argument, respectively.

bar函数的调用规则是要给出一个或两个参数。如果它用一个参数调用,x

将会绑

定到这个参数值上,而 y 就是

nil;如果用两个参数调用它,x和y会分别绑定

到第一和第二个值上。

The function baaz has two optional arguments. It specifies a default value for each of them: if the caller specifies only one argument, z will be bound to 10 instead of to nil, and if the caller specifies no arguments, x will be bound to 3 and z to 10.

baaz

函数有两个可选参数。它为它们分别提供了默认值:如果调用者只给出了一

个参数,z会绑定为10而不是nil,如果调用者没有给出参数,x会绑定为3,而z绑

定为10。

You can make your function accept any number of arguments by ending its

argument list with an &rest parameter. LISP will collect all arguments not otherwise accounted for into a list and bind the &rest parameter to that list. So:

在参数列表的最后设置一个 &rest

参数,可以使我们的函数接受任意数目的参数。

LISP把所有的附加参数都放进一个链表并绑定到 &rest

参数。如下:

> (defun foo (x &rest y) y)

FOO

> (foo 3)

NIL

> (foo 4 5 6)

(5 6)

Finally, you can give your function another kind of optional argument called a keyword argument. The caller can give these arguments in any order, because they're labelled with keywords.

最后,我们可以为函数指定一种被称为关键字参数的可选参数。调用者可以用 任意顺序调用这些参数,因为他们已经通过关键字标示出来。

> (defun foo (&key x y) (cons x y))

FOO

> (foo :x 5 :y 3)

(5 . 3)

> (foo :y 3 :x 5)

(5 . 3)

> (foo :y 3)

(NIL . 3)

> (foo)

(NIL)

An &key parameter can have a default value too:

关键字参数也可以有默认值:

> (defun foo (&key (x 5)) x)

FOO

> (foo :x 7)

7

> (foo)

5

Printing

Some functions can cause output. The simplest one is print, which prints its argument and then returns it.

某些函数可以用来输出。最简单的一个是

print,它可以打印参数并且返回

它们。

> (print 3)

3

3

The first 3 above was printed, the second was returned.

首先打印3,然后返回它。

If you want more complicated output, you will need to use format. Here's an example:

如果你需要更复杂的输出,可能会用到

format,这里有个例子:

> (format t "An atom: ~S~%and a list: ~S~%and an integer: ~D~%"

nil (list 5) 6)

An atom: NIL

and a list: (5)

and an integer: 6

The first argument to format is either t, nil, or a stream. T specifies output to the terminal. Nil means not to print anything but to return a string containing the output instead. Streams are general places for output to go: they can specify a file, or the terminal, or another program. This handout will not describe streams in any further detail.

第一个参数可以是 t,nil

或者一个流。t意味着输出到终端;nil意味着不打印

任何东西,而是把它返回。流是用于输出的通用方式:它可以是一个指定的文件,或者一个终端,或者另一个程序。这里不再详细描述流的更多细节。

The second argument is a formatting template, which is a string optionally containing formatting directives.

第二个参数是个格式化模版,即一个包含格式化设定的字符串。

All remaining arguments may be referred to by the formatting directives. LISP will replace the directives with some appropriate characters based on the arguments to which they refer and then print the resulting string.

所有其它的参数由格式化设定引用。LISP会根据标示所引用的参数,将其替换 为合适的字符,并返回结果字符串。

Format always returns nil unless its first argument is nil, in which case it prints nothing and returns a string.

如果format的第一个参数是 nil

,它返回一个字符串,什么也不打印,否则

它总是返回 nil 。

There are three different directives in the above example: ~S, ~D, and ~%. The first one accepts any LISP object and is replaced by a printed representation of that object (the same representation which is produced by print). The second one accepts only integers. The third one doesn't refer to an argument; it is always replaced by a carriage return.

前面的例子中有三种不同的标示:~S,~D和~%。第一个接受任意LISP对象并且将

其替换为这个对象的打印描述(与使用print打印出的描述信息相同)。第二个

Another useful directive is ~~, which is replaced by a single ~.

另一个常用的标示是~~,它替换为单个~。

Refer to a LISP manual for (many, many) additional formatting directives.

LISP手册中介绍了其它(很多,很多)的格式化标示。

Forms and the Top-Level Loop

The things which you type to the LISP interpreter are called forms; the LISP interpreter repeatedly reads a form, evaluates it, and prints the result. This procedure is called the read-eval-print loop.

我们输入到LISP解释器的东西被称为语句;LISP解释器逐条循环读取每条语句,进行解析,将结果打印出来。这个过程被称为读取-解析-打印循环。

Some forms will cause errors. After an error, LISP will put you into the debugger so you can try to figure out what caused the error. LISP debuggers are all different; but most will respond to the command "help" or ":help" by giving some form of help.

某些语句会发生错误,LISP会引领我们进入调试器,以便我们找出错误原因。 LISP的各种调试器有很多差异,不过使用"help"或":help"命令就会给出一

些语句帮助。

In general, a form is either an atom (for example, a symbol, an integer, or a string) or a list. If the form is an atom, LISP evaluates it immediately. Symbols evaluate to their value; integers and strings evaluate to themselves. If the form is a list, LISP treats its first element as the name of a function; it evaluates the remaining elements recursively, and then calls the function with the values of the remaining elements as arguments.

通常,一个语句是一个原子(例如,一个符号或者整数,或者字符串)或者一个列表,

如果换某个语句是原子,LISP立即解析它。符号解析为它们的值;整数和字符串解析

为它们自身。如果语句是一个列表,LISP视它的第一个元素为函数名;它递归的解析

其余的元素,然后将它们的值作为参数来调用这个函数。

For example, if LISP sees the form (+ 3 4), it treats + as the name of a function. It then evaluates 3 to get 3 and 4 to get 4; finally it calls + with 3 and 4 as the arguments. The + function returns 7, which LISP prints.

例如,如果LISP遇到语句 (+ 3 4),它尝试将 +

作为函数名。然后将3解析为3,4解

析为4;最后用3和4作为参数调用+。LISP打印出 +

函数的返回值7。

The top-level loop provides some other conveniences; one particularly convenient convenience is the ability to talk about the results of previously typed forms. LISP always saves its most recent three

AutoLisp极速入门视频教程笔录

大家好,您现在看到的是CAD高手网为大家奉献的CAD二次开发视频教程,尽管网站已经上传了一些lisp的视频教程,但是有很多新手朋友还是不得要领,这主要原因是因为我们的专业是设计而不是计算机编程。很荣幸,今天再次受CAD高手网站长剑王之邀,为大家制作本节lisp极速入门教程。 这节课的主要内容有: 一、认识CAD二次开发(lisp程序)及其作用 因为我们的专业是设计,为了真正达到极速入门的目的,这里我们不讲编辑语言的理论知识,理论知识可以到我们网站(https://www.360docs.net/doc/6d9415271.html,)的二次开发扫盲专题去详细了解,下面我们直接通过一个演示来对二次开发的作用做一个感性的认识。 二、lisp程序框架基本格式 (defun函数名称(变量声明)(……程序内容……)) 我们看到该框架以括号开始并以括号结束,这就是lisp语言最基本的语法规则之一,lisp程序的所有表达式都必须包括的括号以内,且左、右括号必须一一对称,成双成对。其中各部分的意义如下: defun内置功能函数,用于定义新的指令或新的功能函数。(我们甚至也可以将其看作是lisp语言的一个固定格式,因为这个函数比较特殊,我们无论是定义一个函数或是开发一个程序命令都将要用到它。) 函数名称新定义的函数名称,这完全取决于你的个人意愿可以是任何字符,如果该名称被定义为“c:”开头,则此函数即可做为CAD的一条新命令,反之则为一个功能函数,待下面实例详细讲解。 变量声明变量的声明分为全局变量或局部变量,可以省略但必须保留其在框架格式中的位置,即保留其位置的括号“()”,关于全局变量或局部变量将会在以后的课程中一一详解。 程序内容定义程序的所有表达式的集合,即该括号内可以嵌套任一多个括号(表达式) 三、lisp程序实例探密 1、利用lisp程序定义“左手键”(快捷键)

lisp经典语句数值

设置默认数值 (if (= (setq th (getreal "输入墙厚度:(默认为0.25):")) nil) (setq th 0.25) ) 设置当前环境 (setvar "cmdecho" 0) ;不显示提示文字 (setvar "plinewid" 0.2 ) ;设置绘图线宽为0.2 (setvar "osmode" 0) ;设置当前捕捉为关闭状态 (command "undo" "be" "")恢复上一个命令 (command "text" "c" pt3 hgt ang1 txt1) 添加文字信息在意图面(command "text" "c" pt3 hgt ang1 txt1) (DEFUN C:szzt() (command "style" "细等线体" "方正细等线简体" "0" "1" "0" "n" "n" ) ;标注文字样式(command "style" "中等线体" "方正中等线简体" "0" "1" "0" "n" "n" ) ;文字样式(command "style" "宋体" "方正书宋_GBK" "0" "1" "0" "n" "n" ) ;标注文字样式(command "style" "黑体" "黑体" "0" "1" "0" "n" "n" ) ;标注文字样式 (command "style" "HZ" "txt,hztxt" "0" "0.8" "0" "n" "n" "n") (princ "\n文字样式已设定!")) (DEFUN C:tdc() (COMMAND "LAYER" "M" "HX" "C" "1" "" "") (COMMAND "LAYER" "M" "LH" "C" "3" "" "") (COMMAND "LAYER" "M" "ZX" "C" "2" "" "") (COMMAND "LAYER" "M" "绿化占地" "C" "3" "" "") (COMMAND "LAYER" "M" "道路占地" "C" "1" "" "") (COMMAND "LAYER" "M" "建设用地" "C" "7" "" "") (COMMAND "LAYER" "M" "解算" "C" "4" "" "") (COMMAND "LAYER" "M" "用地范围线" "C" "7" "" "") (COMMAND "LAYER" "M" "边界线" "C" "4" "" "") (COMMAND "LAYER" "M" "勘界线" "C" "6" "" "") (COMMAND "LAYER" "M" "利用" "C" "16" "" "") (COMMAND "LAYER" "M" "外业" "C" "5" "" "") (COMMAND "LAYER" "M" "图框" "C" "7" "" "") (COMMAND "LAYER" "M" "现状地形" "C" "5" "" "") (COMMAND "CLAYER" "解算"))

《HTML基础试题》

《HTML基础试题》 一、单项选择题: 1、下面哪一个属性不就是文本的标签属性?( ) A.  B.size C.color D.face 2、当链接指向下列哪一种文件时,不打开该文件,而就是提供给浏览器下载。( ) A.ASP B.HTML C.ZIP D.CGI 3、关于文本水平对齐,源代码设置不正确的一项就是:( ) A.居中对齐:

B.居右对齐:
C.居左对齐:
D.两端对齐:
4、下面哪一项就是换行符标签?( ) A. B. C.
D. 5、下列哪一项就是在新窗口中打开网页文档。( ) A._self B._blank C._top D._parent 6、下面对JPEG格式描述不正确的一项就是。( ) A.照片、油画与一些细腻、讲求色彩浓淡的图片常采用JPEG格式 B.JPEG支持很高的压缩率,因此其图像的下载速度非常快 C.最高只能以256色显示的用户可能无法观瞧JPEG图像 D.采用JPEG格式对图片进行压缩后,还能再打开图片,然后对它重新整饰、编辑、压缩 7、常用的网页图像格式有____与_____( ) A、gif,tiff B.tiff,jpg C.gif,jpg D.bmp,png 8、下面说法错误的就是( ) A、CSS样式表可以将格式与结构分离 B.CSS样式表可以控制页面的布局 C、CSS样式表可以使许多网页同时更新 D.CSS样式表不能制作体积更小下载更快的网页 9、CSS样式表不可能实现( )功能。 A将格式与结构分离 B.一个CSS文件控制多个网页 C、控制图片的精确位置 D.兼容所有的浏览器 10、在HTML中,( )不就是链接的目标属性。 A、self B.new C.blank D.top 11、在网页设计中,( )就是所有页面中的重中之重,就是一个网站的灵魂所在。 A.标题栏 B.脚本页面 C、导航栏 D.页面内容 12、为了标识一个HTML文件应该使用的HTML标记就是( )。 A. B. C. D.
13、在客户端网页脚本语言中最为通用的就是( ) A、JavaScript B、VB C.Perl D、ASP 14、在HTML中,标记的属性:“Size”所能取的最大取值就是( ) A、6 B.7 C.8 D.9 15、下面不属于CSS插入形式的就是( ) A、索引式 B.内联式 C.嵌入式 D.外部式 16、如果站点服务器支持安全套接层(SSL),那么连接到安全站点上的所有URL开头就是( ) A.http:// B.https:// C.shttp:// D.SSL://

autocad lisp教程

Lisp教程 一.Lisp基础知识 二.对话框基础 一.基本知识 第1节 -------------------------------------------------------------------------------- 基本知识 AutoLISP是一种针对扩充及自订AutoCAD函数机能而产生,以LISP为基础的程序设计语言.LISP本身于50

目的是令使用者充份利用AutoCAD进行开发,直接增加及修改AutoCAD指令. AutoLisp语言建基于普通的LISP语言上,并扩充了许多适用于CAD的特殊功能而形成. 是一种能以直译方式(不须先行编译)亦可于AutoCAD内部执行的直译性程序语言. 程序容易学习及撰写,程序即使出错亦不会对操作系统(如DOS,WINDOWS)有不良影响. 数据及程序均统一以串行(List)结构表示. 可直接调用几乎全部的AutoCAD命令. 既具备一般高级语言的基本结构和功能,亦有一般高级语言没有的强大图形处理能力. 内建于AutoCAD应用程序,不须另行购买;亦不须使用特定的编辑器或开发环境. 可配合AutoCAD提供的PDB,建立DCL(Dialog Control Language)文件创建对话框. 缺点: 执行速度较ObjectArx(旧称ARX,以C或C++程序开发,取代以前的ADS)程序慢;原程序不易保护;对低阶的硬件数据不易存取. 第2节 -------------------------------------------------------------------------------- 函数(Function) 在AutoLISP程序语言中所有的成份都是以函数的形式出现,AutoLISP程序就是顺序执行连串的函数.函数的运行过程就是对函数的求值(结果)过程;函数的基本语法如下: (函数名称参数1 参数2....) e.g. (PRINC "AutoLISP Programming") 每一个完整的函数必须包在一对小括号( )内,左边为开括号,右边为关括号;如有若干数量的开括号,则一定有同等数量的关括号对应. 左边开括号后紧随函数名称. 函数名称与参数之间,或参数与参数之间须最少留一个空格. 函数可有一个或多个参数(也可能没有参数),视该函数而定. 函数名称不分大小写,即大小写字母视为相同. 第3节 -------------------------------------------------------------------------------- 数据型态(Data Type) 整数(INT) 没有小数字的数值,32位有号数,范围从+2,147,483,647到-2,147,483,648 实数(REAL) 带小数字的数值,以倍精度浮点格式储存(最少14位小数) e.g. 12.5 当数值在1与-1之间时,必须加上前导零 e.g. 0.05 可以科学记号表示: 在E或e后加上次方值 e.g. 4.1e-6 字符串(STR) 一般文字,其前后必须加上双引号" e.g. "AutoCAD" 控制字符或脱逸码必须为小写,且须在字符前加上反斜线\ e.g. "\AutoCAD" 像素名称(ENAME) 是指定给图文件内对象的指针(Pointer,为16进位的数字卷标) e.g. 像素名称在图文件内是唯一的,不会重复 对象的像素名称只在目前作业中有效,再开启图档时,会指定新的像素名称予该对象 档案(FILE) 以OPEN函数所开启档案的指针,作为其它函数(读写该档案)的自变量 选集(PICKSET)

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语言了,那么我的的法,如果您在完本文后,自己已会用 目的就达到了。

HTML语言入门教程

语言入门教程(一) ?什么是HTML语言 HTML(HyperText MarkUp Language)是使用特殊标记来描述文档结构和表现形式的一种语言,由W3C(World Wide Web Consortium)所制定和更新。我们可以用任何一种文本编译起来编辑HTML文件,因为它就是一总纯文本文件。 ?HTML语言的基本结构 下面我们来看一小段HTML语言的代码,来了解HTML语言的基本结构: HTML语言的基本结构 HTML(HyperText MarkUp Language)是使用特殊标记来描述文档结构和表现形式的一种语言。 将这一小段代码粘贴至文本文件中,然后选择“另存为”,将文件的后缀名改为.htm或者.html即可,然后再所在的目录下就可看到一个IE的图标,名字就是你所存的文件名称。 …… …… 这是声明HTML文件的语法格式。每一个HTML文件,都必须以开头,以结束…… …… 这是文件头声明的语法格式。在这之内的所有文字都属于文件的文件头,并不属于文件本体。

…… …… 这是声明文件标题的语法格式。在这之中写下的所有内容,都将写在网页最上面的标题栏中。 …… …… 这是声明文件主体的语法格式。在者之间写下的内容都是文件的主体,也就是说将会被显示在客户区之中。 注意:几乎每一种HTML语言的语法都是以<>开头,以结束。在编辑HTML语言过程中,也可以使用注释。语法格式为:。就好像C语言中的/* …… …… */ 一样,中间的内容只是解释说明,并不被编译器所编译。 HTML语言的基本单位 1. 长度单位 长度单位可以用来定义水平线、表格边匡、图像等对象的长、宽、高等一系列属性,同时也可以用来定义这些对象在页面上的位置等属性,用来描述页面上可能遇到的各种长度。 长度的表示方法有两种:绝对长度和相对长度。他们的单位都是像素(pixel)和百分比(%),像素代表的是屏幕上的每个点,而百分比代表的是相对于客户区的多少。下面我们就以水平线的宽度为例,说明这两种表示方法。 HTML语言的长度表示 HTML(HyperText MarkUp Language)是使用特殊标记来描述文档结构和表现形式的一种语言。



在文本编译器中编译,改变网页的大小,就会看到这两者表示长度方法的不同。

html入门教程适合初学者

希望可以帮到大家 一、HTML基本概念 什么是HTML文件? ?HTML的英文全称是Hypertext Marked Language,中文叫做“超文本标记语言”。?和一般文本的不同的是,一个HTML文件不仅包含文本内容,还包含一些Tag,中文称“标记”。 ?一个HTML文件的后缀名是.htm或者是.html。 ?用文本编辑器就可以编写HTML文件。 这就试写一个HTML文件吧! 打开你的Notepad,新建一个文件,然后拷贝以下代码到这个新文件,然后将这个文件存成first.html。 Title of page This is my first homepage. This text is bold

要浏览这个first.html文件,双击它。或者打开浏览器,在File菜单选择Open,然后选择这个文件就行了。 示例解释 这个文件的第一个Tag是,这个Tag告诉你的浏览器这是HTML文件的头。文件的最后一个Tag是,表示HTML文件到此结束。 在和之间的内容,是Head信息。Head信息是不显示出来的,你在浏览器里看不到。但是这并不表示这些信息没有用处。比如你可以在Head信息里加上一些关键词,有助于搜索引擎能够搜索到你的网页。 在之间的内容,是这个文件的标题。你可以在浏览器最顶端的标题栏看到这个标题。 在和之间的信息,是正文。 在之间的文字,用粗体表示。顾名思义,就是bold的意思。 HTML文件看上去和一般文本类似,但是它比一般文本多了Tag,比如,等,通过这些Tag,可以告诉浏览器如何显示这个文件。 HTML元素(HTML Elements) ?HTML元素(HTML Element)用来标记文本,表示文本的内容。比如body, p, title 就是HTML元素。 ?HTML元素用Tag表示,Tag以<开始,以>结束。 ?Tag通常是成对出现的,比如。起始的叫做Opening Tag,结尾的就叫做Closing Tag。 ?目前HTML的Tag不区分大小写的。比如,和其实是相同的。HTML元素(HTML Elements)的属性

养成良好的AutoLISP书写习惯

养成良好的AutoLISP书写习惯 众所周知,Lisp是一种表结构语言,括号必须成对出现,在调试时往往为遗漏了一个括号大费周折,所以,养成一个好的编程习惯是学好Lisp所必须的。 ⑴选择一个较好的编辑器,这是一个基本条件,建议使用Visual Lisp编辑器或Lisplink 等专用编辑器,此类编辑器可以对函数突出显示。 ⑵按Lisp(DCL)专有格式书写,并经常对程序进行“格式化”,及时发现语法错误,并有利于调试是查找错误。 ⑶使用自定义函数,并辅助以适当得注释,在较大程序中按功能使用自定义函数可以使得程序条理化。 autolisp的入门教程+autolisp函数! 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。如果一个表达式是一个表,那么我们把表中的第一个元素叫做操作符,其余的元素叫做自变量。

HTML语言入门教程

语言入门教程(一) 第一课基础 Html是英文 HyperText Markup Language 的缩写,中文意思是“超文本标志语言”,用它编写的文件(文档)的扩展名是.html或.htm,它们是可供浏览器解释浏览的文件格式。您可以使用记事本、写字板或 FrontPage Editor 等编辑工具来编写Html文件。Html语言使用标志对的方法编写文件,既简单又方便,它通常使用<标志名>来表示标志的开始和结束(例如标志对),因此在Html文档中这样的标志对都必须是成对使用的。 当我们畅游Internet时,我们透过浏览器所看到的网站,是由HTML (HyperText Markup Language) 语言所构成。HTML ( 超文件标记语言 ) 是一种建立网页文件的语言,透过标记式的指令 (Tag),将影像、声音、图片、文字等连结显示出来。 HTML标记是由 < 和 > 所括住的指令,主要分为 : 单标记指令、双标记指令 ( 由 < 起始标记 >,< / 结束标记 >所构成 ) 。HTML网页文件可由任何文本编辑器或网页专用编辑器编辑,完成后 ( 以 .htm

.html 为文件后缀保存 ) 将HTML网页文件由浏览器打开显示,若测试没有问题则可以放到服务器 (Server) 上,对外发布信息。 HTML文件基本架构 文件开始 标头区开始 ... 标题区 标头区结束 本文区开始 本文区内容 本文区结束 文件结束 网页文件格式。 标头区 : 记录文件基本资料,如作者、编写时间。 标题区 : 文件标题须使用在标头区内,可以在浏览器最上面看到标题。 <BODY> 本文区 : 文件资料,即在浏览器上看到的网站内容。 注意事项</p><h2>HTML语言基础练习题</h2><p>如对你有帮助,请购买下载打赏,谢谢! 第一部分:基础词汇 1、单词 head,头body,身体block,块inline,一行内width,宽度height,高度image,图像title,标题parent,父亲blank,空白的table,表格row,行character,字符 column,列 caption,说明文字 list,列表 form,表单 type,类型 input,输入 text,文本 password,密码 value,值 select,选择 option,选项 textarea,文本域 submit,提交 button,按钮 reset,重置 action,动作 method,方法 target,目标 left,左 right,右 center,中 top,上 bottom,下 2、词语缩写 术语:HTML,HyperText Markup Language,超级文本标记语言 术语:URL,Uniform Resoure Locator,统一资源定位器 术语:HTTP,Hyper Text Transfer Protocol,超文本传输协议 术语:WWW,World Wide Web,万维网 术语:IP,Internet Protocol,网络互连协议 属性:src,source,源 属性:href,hypertext reference,超文本引用 属性:id,identification,身份证、唯一标识 属性:class,类别 属性:title,标题、字幕 属性:style,样式 标签:a,anchor,锚或超链接 标签:div,division,部分区域 标签:ul,unordered lists,无序列表 标签:ol,ordered lists,有序列表 标签:img,image,图像 标签:p,paragraph,段落 标签:meta,metadata,元数据、描述信息的数据 第二部分:HTML基本结构(以html5为例) <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>页面标题 页面元素及内容部分 第三部分:看页面效果图,写出HTML代码 1、当鼠标光标移动至段落上时,要求显示字幕信息“我是段落”。

我是一级标题

这是一个段落 2、有一幅鲜花图片,名称为“flower.jpg”,假设图片与网页文件在同一个文件夹内,设置鲜花图片的高度为85px,宽度为100px,并要求实现鼠标指针停留在图片上时,显示字幕“鲜花”。

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) ?函数可以作为值返回 ?支持一流的计算连续

HTML基础试题》

《H T M L基础试题》 一、单项选择题: 1、下面哪一个属性不是文本的标签属性?() A.  B.size C.color D.face 2、当链接指向下列哪一种文件时,不打开该文件,而是提供给浏览器下载。 () A.ASP B.HTML C.ZIP D.CGI 3、关于文本水平对齐,源代码设置不正确的一项是:() A.居中对齐:

B.居右对齐:
C.居左对齐:
D.两端对齐:
4、下面哪一项是换行符标签?() A. B. C.
D. 5、下列哪一项是在新窗口中打开网页文档。() A._self B._blank C._top D._parent 6、下面对JPEG格式描述不正确的一项是。()

A.照片、油画和一些细腻、讲求色彩浓淡的图片常采用JPEG格式 B.JPEG支持很高的压缩率,因此其图像的下载速度非常快 C.最高只能以256色显示的用户可能无法观看JPEG图像 D.采用JPEG格式对图片进行压缩后,还能再打开图片,然后对它重新整饰、 编辑、压缩 7、常用的网页图像格式有____和_____( ) A.gif,tiff B.tiff,jpg C.gif,jpg D.bmp,png 8、下面说法错误的是( ) A.CSS样式表可以将格式和结构分离 B.CSS样式表可以控制页面的布局 C.CSS样式表可以使许多网页同时更新 D.CSS样式表不能制作体积更小下 载更快的网页 9、CSS样式表不可能实现( )功能。 A将格式和结构分离 B.一个CSS文件控制多个网页 C.控制图片的精确位置 D.兼容所有的浏览器 10、在HTML中,( )不是链接的目标属性。 A.self B.new C.blank D.top 11、在网页设计中,( )是所有页面中的重中之重,是一个网站的灵魂所在。 A.标题栏 B.脚本页面 C.导航栏 D.页面内容 12、为了标识一个HTML文件应该使用的HTML标记是( )。 A. B. C. D.

CAD创建Lisp程序步骤

使用Visual LISP创建简单的LISP应用程序 作者:佚名点击数:1523 更新:2007-2-2 7:08:10 热★★★ 【字体:小大】 a> 本节通过一个简单的实例来讲述LISP程序的创建过程,介绍编制LISP程序的一些基本步骤,以及LISP程序在AutoCA D中的加载和运行的方法。首先来创建一个最简单的LISP程序—-―Hello.lsp‖,在AutoCAD 2002中加载并运行该程序,将会在命令行出现-―Hello, Visual LISP!‖。 36.2.1 Visual LISP与AutoCAD的通信 用户可以直接在AutoCAD命令行中键入AutoLISP表达式。AutoCAD通过括号来确认AutoLISP表达式。AutoCAD每当发现一个左括号,就确认为AutoLISP表达式,并由AutoLISP求表达式的值后返回AutoCAD,AutoCAD使用返回结果并继续进行其他工作。 注意在AutoLISP表达式中,左、右括号必须配对,否则AutoCAD将给出提示符n>,n表示右括号丢失数目。 此外,在AutoCAD中调用并执行AutoLISP程序。在AutoLISP程序中采用COMMAND函数来与AutoCAD命令程序处理器通信,COMMAND从AutoLISP获得命令并将其传给AutoCAD。 36.2.2 实例1 最简单的LISP程序——―Hello.lsp‖ Step 1 创建新文件 (1) 运行AutoCAD 2002系统,以―acadiso.dwt‖为样板创建图形文件,并调用―vlisp‖命令进入Visual LISP环境。 (2) 单击―Standard(标准)‖工具栏中的按钮,新建一个LISP文件。 Step 2 输入代码并保存文件 (1) 在编辑窗口中输入源文件―Hello.lsp‖的代码,如图36-3所示。程序清单如下: ;;;* Hello.lsp –Visual LISP文件实例 (prompt "Pick point:") ;指定运行时的提示信息 (setq ipt (getpoint)) ;在屏幕上指定一点并将其坐标值赋予变量―ipt‖ (setq hgt 15) ;给变量―hgt‖赋值 (Command "_.TEXT" "_S" "STANDARD" ipt hgt 0 "Hello, Visual LISP!") ;调用―Commnad‖函数与AutoCAD进行通信

autolisp教程

第十四章 AutoLISP 14.1 关于AutoLISP AutoLISP是由Autodesk公司开发的一种LISP程序语言(LISP是List Processor的缩写)。第一篇关于LISP的参考文献是由John McCarthy 在1960年4月的《ACM通讯》中发表的。 除了FORTRAN和COBOL,大多数在六十年代早期开发出来的语言都过时了,可是LISP 却生下来,并且已经成为人工智能(AI)的首选程序序言。AutoLISP解释程序位于AutoCAD 软件包中,然而AutoCAD R2.17及更低版本中并不包含AutoLISP解释程序,这样,只有通过AutoCAD R2.18及更高版本才可以使用AutoLISP语言。 AutoCAD软件包中包含大多数用于产生图形的命令,但仍有某些命令末被提供。例如,AutoCAD中没有在图形文本对象内绘制矩形及作全局改变的命令。通过AutoLISP,你可以使用AutoLISP程序语言编制能够在图形文本对象内绘制矩形或作全局选择性改变的程序。事实上,可以用AutoLISP编制任何程序,或把它嵌入到菜单中,这样定制你的系统会取得更高的效率。 现在,已经有数以百计的第三方软件开发人员使用AutoLISP语言编制各种应用程序软件包,例如,本文作者开发了一个名为SMLayout的软件包,用它可以产生各种复杂几何图形的平面布局图,这些几何图形包括管道的交叉部、过渡都、圆柱、弯管接头、圆锥以及罐顶。目前社会上非常需要AutoLISP程序员为应用软件及客户菜单的开发提供顾问。 在本章中,我们假定读者已经熟悉了AutoCAD命令及AutoCAD的系统变量。但是,在开始学习AutoLISP时,却并不需要你是一位AutoCAD或编程专家。同时,本章还假定读者并无编程方面的知识。如果你熟悉任何一种编程语言,那么学习AutoLISP就会很容易。对各种函数的评细探讨以及对例题的逐步讲解会使你学起来很有兴趣。本章讨论常用的AutoLISP函数以及它们S程序编制中的应用。对于本章中未涉及的函数,请参阅Autodesk 公司的《AutoLISP程序员参考手册》。AutoLISP对硬件没有任何特殊要求。如果系统能够运行AutoCAD,那么同样也可以运行AutoLISP。AutoLISP程序可以使用任何文本编辑器进行编制。 14.2 数学运算 任何编程语言都提供数学函数。在AutoLISP中,同样提供了编程以及数学计算所需的大部分数学函数,你可以使用AutoLISP对数字进行加、减、乘、除运算,还可以得到以弧度表示的角度的正弦值、余弦值及反正切值等。使用AutoLISP还可以进行许多其他计算。这一节主要讨论AutoLISP程序语言支持的常用数学函数。 269

基于HTML语言的网页制作基础

《网页设计基础与网站维护》课程论文基于HTML语言的网页制作基础 学号: 姓名: 专业: 学院: 日期: 学期: 上课教室: 联系方式: 指导老师: 论文成绩:

基于HTML语言的网页制作基础 【内容摘要】本文着重于基于HTML语言的网页制作,通过对“网页设计基础”课程的总结学习,主要介绍了网页制作的基本知识、HTML语言的具体介绍、利用HTML语言制作网页的基本方法技术,以及网页设计的发展方向等。 【关键词】HTML语言、网页设计、代码、标记 一、网页设计制作介绍 网页(Web page)是一个文件,他存放在世界某个角落的某一部计算机中,而这部计算机必须是与互联网相连的。网页经由网址(URL)来识别与存取,是万维网中的一“页”,是超文本标记语言格式(标准通用标记语言的一个应用,文件扩展名为.html或.htm)。网页通常用图像档来提供图画。网页要透过网页浏览器来阅读。 网页设计是指使用标识语言(markup language),通过一系列设计、建模、和执行的过程将电子格式的信息通过互联网传输,最终以图形用户界面(GUI)的形式被用户所浏览。简单来说,网页设计的目的就是产生网站,什么是网站呢,就是服务器内的一系列网页的组合,终端用户发出请求后[[服务器通过传输特定的网页向用户传输所需的信息。简单的信息如文字,表格,都可以通过使用HTML/XHTML/XML放置到网站页面上。而更复杂的信息如动画,视频,声频则需要插件程序例如Flash, QuickTime, Java run-time environment,等等,这些插件程序也是通过HTML/XHTML/XML植入网页的。 网页设计的工具: ⑴Dreamweaver,用于编辑HTML、ASP、JSP、PHP、CSS、XML、JS的页面制作工具; ⑵Frontpage,跟Dreamweaver一样,不过个人感觉还是Dreamweaver好; ⑶Flash,网页需要画面流动时的首选择; ⑷Photoshop,图像处理软件,一般网页都需要有图片相搭配,Photoshop是款很强大的工具。 ⑸Fireworks,跟Photoshop一样都是图像处理软件,但Fireworks偏向与对网页

AutoLISP 入门

超值奉送 Auto LISP 入门 Auto LISP 是在AutoCAD 内部允许的一种内嵌式程序设计语言。LISP (List Processing Language )是人工智能领域中广泛采用的一种表处理语言,具有较强的表处理功能,主要用于人工智能、机器人、专家系统、博弈、定理证明等领域。LISP 也被称为符号式语言,因为它处理的对象是符号表达式。 Auto LISP 可以直接调用几何所有的AutoCAD 命令,为AutoCAD 提供了使用高级语言开发编程的途径,使得用户能充分利用它对AutoCAD 进行二次开发。 感谢: 感谢您选购本图书。 本部分是《AutoCAD 2007中文版自学手册——入门提高篇》图书超值赠送的一部分,仅供读者个人参考使用。未经许可,任何人不得将此部分用于其他商业用途。 欢迎您对我们的图书进行监督,并对我们的工作(图书质量、装帧设计、封面、印刷等)提出改进意见或建议。 网站:https://www.360docs.net/doc/6d9415271.html, E-mail: editor.liu@https://www.360docs.net/doc/6d9415271.html, QQ 群:9843746 (CAD/CAM/CAE 应用方向) 您的支持是我们前进的动力,您的需要是我们努力的方向! 冯如设计在线 2006-10-09

A.1 Auto LISP基本函数 自从AutoCAD RA.01 开始,出现了Visual LISP 语言,它是Autodesk公司为增强Auto LISP 程序开发能力而设计的软件工具,为Auto LISP增加了许多新的函数。Visual LISP的集成开发环境提供很多特性,使用户创建和修改源代码、测试和调试程序更加方便。 自从Auto LISP 嵌入AutoCAD 之后,使仅仅作为交互式图形编辑软件的AutoCAD,通过编程使之能真正进行计算机辅助设计、绘图。由于LISP灵活多变、易于学习和使用,因而使AutoCAD 成为功能很强大的工具性软件。 随着AutoCAD版本的升级,Auto LISP 的功能不断得到扩充和增强,主要功能如下: z能够把数据和程序统一表达为表结构,即S-表达式,因此可以把程序当作数据来处理,以可以把数据当作程序来执行; z有图形处理和程控方面的函数,可以直接调用AutoCAD的所有命令; z扩充了AutoCAD应用的特殊功能; z主要控制结构采用递归方式,使得程序设计简单易懂。 A.1.1 赋值函数 Auto LISP提供了大量系统预定义的函数。函数的一般描述格式为: (函数名<变元> [<变元> ……]) 表中第一个元素为函数名,它一般指明函数的功能。其余各元素为函数的变量(称为变元)。[ ]表示任选项;……表示任意多项;<>表示变元类型。函数调用后显示一个执行该函数的结果,称为返回值。下面是Auto LISP的基本函数。 1. (setq 符号表达式[符号表达式]……) 将一个或者多个符号设置为相应表达式的值,返回最后一个表达式的值,例如: (setq a 123 b 6.0) ; 符号a返回6.0 (setq s “it” x ‘(a b ) ) ; 符号s 被赋值为”it”, 符号x 被赋值为(a b),返回(a b) 2. (set‘符号表达式) 如果符号前有一个单引号,该函数则将符号设置为表达式的值,此用法与setq函数的用法等价,例如: (set ‘ a 18.0) ;符号a被赋为18.0,返回18.0 Set和setq函数都需要将符号作为它的第一个参数。但是set 函数接受返回结果为符号的表达式作为参数,setq却不可以。 3.(eval 表达式) 返回对表达式求值的结果,例如: (setq a 24 b 45) ; 返回45 2

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 这样的符号被称为自解析符号,因为他们解析为自身。自解析符号称为关键字;任一以冒号开头的符号都是关键字。(下面是一些关键字的应用)如下所示: