- 积分
- 1168
- 明经币
- 个
- 注册时间
- 2013-7-27
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 yeahyeah 于 2013-8-11 13:18 编辑
;***********************************************************************************
(defun c:mcir3()
(setq pa (getpoint "第一点:"))
(setq pb (getpoint "第二点:"))
(setq mpt (mapcar '(lambda(x y) (* (+ x y) 0.5)) pa pb))
(command "pasteclip" mpt)
(prin1)
)
;将作为本函数参数的一个或多个表的各个元素提供给指定函数进行求值,并将由求值结果构成的表返回
;(mapcar functionlist1... listn)
;定义无名函数
;(lambda arguments expr...)
;它常与 apply 和(或)mapcar 函数连用,以便对表中的元素执行某个操作。lambda 函数返回它最后一个 expr 的值。
;将参数表传给指定的函数
;(apply ’function list)
(apply '(lambda (x y z) (* x (- y z)) ) '(5 20 14) )
;30
(setq counter 0) ;0
(mapcar '(lambda (x) (setq counter (1+ counter)) (* x 5) ) '(2 4 -6 10.2) )
;(10 20 -30 51.0)
;***********************************************************************************
;(setq cmdecho-bak (getvar "cmdecho"))
;(setvar "cmdecho" 0) ;关闭命令行信息提示
;(command "line" pause pause "")
;(setvar "cmdecho" cmdecho-bak)
;(getvar "cmdecho") ;得知捕捉特定代码
;(setq osmode-bak (getvar "osmode"))
;(setvar "cmdecho" 0) ;关闭捕捉。可以通过得知捕捉特定代码后,改变捕捉选项
;(setvar "osmode" cmdecho-bak)
;***********************************************************************************
;(list 3 4 5) ;(3 4 5) ;将任意数目的表达式组合成一个表
;(vl-list* 1 2(list 3 4 5)"123" "555") ;构造并返回表
;(1 2 (3 4 5) "123" . "555")
;(setq s (list 1 2(list 3 4 5)"123" "555"))
;(1 2 (3 4 5) "123" "555")
;(nth 2 s) ;(3 4 5) ;返回表中的第n个元素
;(last s) ;"555" ;返回表的最后一个元素
;(setq s (list(list 1 2 3) (list 4 5 6) (list 7 8 9) "123" "555"))
;((1 2 3) (4 5 6) (7 8 9) "123" "555")
;(caadr s) ;4
;(car(cadr s)) ;4
;(cadr s) ;(4 5 6) ;第二个元素
;(car s) ;(1 2 3) ;第一个元素
;(caddr s) ;(7 8 9) ;第三个元素
;(cdr s) ;((4 5 6) (7 8 9) "123" "555") ;返回去掉了第一个元素的表
;(cddr s) ;((7 8 9) "123" "555")
;(cdr(cdr s)) ;((7 8 9) "123" "555")
;前增加
;(cons "abcd" s) ;向表的头部添加一个元素,或构造一个点对
;("abcd" (1 2 3) (4 5 6) (7 8 9) "123" "555")
;后增加
;(append s (list "abc")) ;将任意多个表组合成一个表
;((1 2 3) (4 5 6) (7 8 9) "123" "555" "abc")
;插入和删除
;(append (list(car s) (cadr s) "abc" (cdddr s)))
;((1 2 3) (4 5 6) "abc" ("123" "555"))
;(vl-remove "123" s)
;删除表中的元素,若表中有相同的,则一起删除
;((1 2 3) (4 5 6) (7 8 9) "555")
;(vl-remove-if predicate-function list)
;返回由所提供表中的所有不满足测试函数的元素组成的表
;(vl-remove-if-not predicate-function list)
;返回由所提供表中的所有能通过测试函数的元素组成的表
;替换
;(subst "aaa" (list 1 2 3) s)
;在表中搜索某旧项,并将表中出现的每一个旧项用新项代替,然后返回修改后所得的表
;("aaa" (4 5 6) (7 8 9) "123" "555")
; 若表中有相同的,则一起替换
;命令: !s
;((1 2 3) (4 5 6) (7 8 9) "123" "555")
;s没变
; 逆转
;(reverse s) ;将表的元素顺序倒置后返回
;("555" "123" (7 8 9) (4 5 6) (1 2 3))
;!s ;((1 2 3) (4 5 6) (7 8 9) "123" "555") ;s没变
;取倒数第2个
;(cadr (reverse s))
;"123"
;***********************************************************************************
;(assoc 1 s) ;(1 2 3) ;从关联表中搜索一个元素,如果找到则返回该关联表条目
;(vl-list-length s) ;5 ;计算表的长度
;(vl-position "123" s) ;3 ;返回指定表项目的“位置号”
;(listp s) ;T ;检查某个项是否是表
;***********************************************************************************
;(numberp 1) ;T ;检查某个项是否是实数或整数
;(numberp a) ;nil
;(numberp "123") ;nil
;(setq a 123 b "string" c nil) ;nil
;(null a) ;nil ;检查某项的值是否设置为 nil
;(null b) ;nil
;(null c) ;T
;(type 1) ;INT ;返回指定项的数据类型
;***********************************************************************************
;字符串(1个中文汉字=2个字符)
;(setq str1 "1234567")
;(setq str2 "890")
;-----------------------------------------------------------------------------------
;改大小写
;(strcase "Sample")
;"SAMPLE"
;(strcase "10-AB001-001" T)
;"10-ab001-001"
;将字符串中的所有字母转换成大写或小写后返回
;如果提供该参数且其值不为 nil,string 中的所有字符将被转换成小写,否则将字符转换为大写。
;-----------------------------------------------------------------------------------
;字符串合并
;将多个字符串拼接成一个长字符串后返回
;(strcat str1 str2)
;"1234567890"
;-----------------------------------------------------------------------------------
;字符串长度
;以整数形式返回一个字符串中字符的个数
;(strlen str1)
;7
;(strlen str1 str2)
;10
;-----------------------------------------------------------------------------------
;返回子串
;;;字符串中的第一个字符的位置为 1。
;返回字符串中的一个子字符串
;(substr str1 3 4)
;"3456"
;-----------------------------------------------------------------------------------
;从字符串的开始和结束删除指定字符
;(setq str1 "1234567")
;(vl-string-trim "123" str1) ;"4567"
;从字符串的开始删除指定字符
;(vl-string-left-trim "12456789" "512463789CPO is not R2D2")
;"3789CPO is not R2D2"
;3把删除后面的789的过程阻断了。也就是说,只要在方向上有一个字符与要删除的字符串中的一个字符不相符,则命令终止。
;从字符串结尾删除指定字符
;(vl-string-right-trim "1356789" "3CPO is not R2D2672891")
;"3CPO is not R2D2672"
;-----------------------------------------------------------------------------------
;将代表字符 ASCII 码的整数转换成包含相应的单一字符的字符串
;(chr 65) ;"A"
;将字符串中的第一个字符转换成其 ASCII 码(整数)后返回
;(ascii "A") ;65
;-----------------------------------------------------------------------------------
;在字符串中进行字符串替换
;(vl-string-subst "abc" "5678" "5678123456789")
;"abc123456789"
;开始位置默认为0
;(vl-string-subst "abc" "5678" "5678123456789" 1)
;"56781234abc9"
;(vl-string-subst "abc" "5678" "55678123456789" 1)
;"5abc123456789"
;可见开头第一个字符位置认为是0
;-----------------------------------------------------------------------------------
|
评分
-
查看全部评分
|