;;本专题所讲述的内容是人机交互以及常规数据处理技术
;;★★★01.人机交互★★★
;;△△△键盘输入交互△△△
(getint "请输入整数");;从键盘输入整数,如果不是整数则重复提示输入整数直到输入的是整数。类似的函数[输入整数 getreal][输入字符串 getstring][控制和输入关键字 initget getkword]

;;△△△数据输出△△△
(princ "The \"allowable\" tolerance is\"" fileDsc);;输出到文件中为 The "allowable" tolerance is" 反斜杆\表转义,但是返回值还是有斜杆,只有输出到文件中时无斜杆,而prin1和print则不管是输入到文件中还是返回值斜杆还是斜杆;对于prompt只能输出在命令行不能输入文件,反斜杆\同样与princ一样表示转义
(vl-prin1-to-string "c:\\");;返回 "\"c:\\\\\"" 类似于prin1的输出
(vl-princ-to-string "c:\\");;返回 "c:\\" 类似于princ的输出

;;△△△屏幕交互△△△
(getpoint);;屏幕取点返回点;类似的有[带基点出现矩形框取点 getcorner][两点取长度 getdist][输入十进制度或鼠标指定返回弧度 getangle getorient]
(polar pt ang dist);;根据点、方位角和距离求点[求两点距离 distance][两点连线的角度 angle][求交点 inters 最后一个参数为nil时交点可以在延长线上][对象捕捉获取特殊点 osnap][屏幕点两点取长度 getdist]
(trans '(1 2 3) 0 1);;将点从一个坐标系转换为另外一个坐标系内的点,也就是点的实际位置不变但是在不同的坐标系内点的坐标值不一样。

;;★★★02.数据处理★★★
(+ 1 2 3);;加法运算,同类的数的运算有[减 - ]、[乘 * ]、[除 / ]、[余数 rem ]、[最大公约数 gcd ]、[最大值 max ]、[最小值 min ]、[e的N次幂 exp]、[10为底N的对数 log]、[数的N次方 expt]、[开方 sqrt]、[绝对值 abs]、[是否是负数 minusp]、[数是否是0 zerop]、[是否是数 numberp]、[数转实数 float]、[数取整 fix]、[正弦 sin]、[余弦 cos]、[反正切 atan]
(quote a);;禁止求值,返回 a 也可以用 'a 表示,返回的也是a
(eval b);;对b求值,返回求值结果(setq a 3) (setq b 'a),返回值为3。
(type data);;返回data的数据类型,数据类型包括有图元名(ename)、外部objectArx应用程序(exrxsubr)、文件描述符(file)、整数(int)、表(list)、函数分页表(pagetb)、选择集(pickset)、浮点数(real)、safearray、字符串(str)、内部AutoLISP函数(subr)、符号(sym)、变体(variant)、从lisp中加载的用户定义函数(usubr)、Active对象(VLA-object)
(atom 'a);;判断是否是原子,是则返回T,否则返回nil
(null a);;判断是否为空,是空返回T,否则返回nil
(boundp 'a);;判断是否非空,非空返回T,否则返回nil。例子(setq a 1) (boundp 'a) 返回T。注意格式,a前面有单引号
(equal 表达式1 表达式2 [允许误差]);;判断两个表达式的值是否在允许的误差范围内,如果是则返回T,否则返回nil

;;△△△转换△△△
(cvunit 1 "minute" "second");;单位转换,将1分钟转换为秒为单位的值60
(ascii "a");;将字符串字符转换为对应ascii码;[数字ascii码转对应字符的字符串 chr]
(itoa 123);;整数转字符串;[字符串转整数 atoi][字符串转实数 atof][根据模式和精度将数转换为字符串 rtos 互补函数为distof][弧度转指定模式角度的字符串 angtos 互补函数 angtof]

;;△△△字符串处理△△△
(strcat "ab" "c");;将几个字符串按先后顺序拼接为一个字符串"abc"
(substr "abcdef" 1 2);;截取字符串,序号从1开始
(strcase "abcDEF" T);;字符串大小写转换,此处是转换为小写,最后一个参数不写则转换为大写
(strlen "你123");;字符串长度
(wcmatch "A123sdfew" "A*");;字符串正则表达式匹配
(vl-string-elt "123abc" 3);;返回字符串内指定位置字符的ascii码值 97
(vl-string-left-trim "123456" "12b3456d");;删除第二个参数左边的在第一个参数字符串字符出现过的字符.也就是开始遍历第二个参数的第一个字符,如果在第一个参数字符串中有这个字符就删除,如果遇到遍历到的字符在第一个参数字符串中不存在此字符就停止遍历删除.就像此例的b,所以返回值是"b3456d"[类似的从右边来删除 vl-string-right-trim][两边都进行 vl-string-trim 相当于执行了前面两个函数]
(vl-string-mismatch "vl-abc" "vl-def");;返回字符串从指定位置开始字符相同的长度 3
(vl-string-position (ascii "a") "123abc");;返回指定ascii码值对应字符在字符串中的位置,从0开始.可以指定开始搜索的位置和是从左开始还是从右开始,默认从左从0开始
(vl-string-search "abc" "123abcdef");;搜索指定子串在字符串中出现的位置,可以指定搜索的开始位置.序号从0开始
(vl-string-subst "789" "abc" "456abc");;子字符串的替换,用"789"替换"456abc"中的"abc"返回"456789"
(vl-string-translate "abcABC" "123123" "A is a, B is b, C is C");;用第一个参数中的字符一一对应第二个参数中的字符替换第三个参数字符串返回"1 is 1, 2 is 2, 3 is 3"
(vl-string->list 字符串);;详见《表处理专题》

------end------

【Visual Lisp】人机交互与数据处理(表除外)-lisp的更多相关文章

  1. Lisp的本质(The Nature of Lisp)

    Lisp的本质(The Nature of Lisp) 作者 Slava Akhmechet                             译者 Alec Jang 出处: http://w ...

  2. visual studio的项目属性表

    最近发现一个有趣的东西:visual studio的项目属性表 我下载了cocos2d-x-3.0alpha1,然后发现HelloLua项目配置里没有配include搜索目录和依赖库以及一个Marco ...

  3. 清理Visual Studio 2017的项目历史记录或手工修改Visual Studio 2017的注册表设置

    Visual Studio 2017的"最近的文件列表"和"项目列表"总是删了之后重启电脑又出现(PS:这期间没有打开过项目,更没打开过VS). 一怒之下,按照 ...

  4. lisp学习总结(二)-----lisp应该探索发展的方向

    现在流行一种语言叫做Clojure,他是lisp直接嫁接到java的结果,但是我就感觉这却成为lisp的失败. 因为lisp最强大最有优势的能力是构造抽象,构造设计思想,而不是运行期以确定的方式运行, ...

  5. Visual Studio Code 键盘参考表

    2019年4月6日,对照中英翻译. 一般 Ctrl+Shift+P, F1 显示命令调色板 Ctrl+P 快速打开,转到文件… Ctrl+Shift+N  新建窗口/实例 Ctrl+Shift+W   ...

  6. Lisp简明教程

    此教程是我花了一点时间和功夫整理出来的,希望能够帮到喜欢Lisp(Common Lisp)的朋友们.本人排版很烂还望多多海涵! <Lisp简明教程>PDF格式下载 <Lisp简明教程 ...

  7. 转-为什么Lisp语言如此先进?(译文)

    之前在看黑客与画家的时候看过,今天重温,完全不一样的感觉! 原文地址:http://www.ruanyifeng.com/blog/2010/10/why_lisp_is_superior.html ...

  8. C,C++,Lisp,Java,Perl,Python

    (译注:圣经记载:在远古的时候,人类都使用一种语言,全世界的人决定一起造一座通天的塔,就是巴别塔,后来被上帝知道了,上帝就让人们使用不同的语言,这个塔就没能造起来. 巴别塔不建自毁,与其说上帝的分化将 ...

  9. 奇怪的Lisp和难懂的计算机程序的构造和解释

    最近用新买的 Kindle 看<黑客与画家>的Lisp部分,发现作者 Paul Graham 很推崇 Lisp 语言,并且认为其它语言都没有Lisp简洁“成熟”,并且举例证明其它语言都在往 ...

随机推荐

  1. asp.net LINQ数据访问技术from where select order by子句

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  2. 开源GIS软件初探

    谈到GIS软件,首先让我们想到的便是GIS界的龙头大哥ESRI公司旗下的ArcGIS产品,从最初接触的version 9.2到如今的version 10.1,其发展可谓风生水起.MapInfo软件也不 ...

  3. spark 获取applicationID

    在编写spark 程序时,有时需要获取job id 进行记录. 只需在程序中加入: sc.applicationId res0: String = app-- 每个job提交后, 均有自己的监控页面. ...

  4. C# 解析JSON格式数据

    JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集.JSON采用完全独立于语言的文本格式,可 ...

  5. MongoDB数据导入导出成csv或者json

    1. 从远程数据表拉取数据到本地json文件 mongoexport --host 远程服务器IP --port 远程服务器端口 --username 远程数据库用户名 --password 远程数据 ...

  6. ZOJ 1442 Dinner Is Ready 容斥原理 + java大数

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=442 求解 x1 + x2 + x3 + .... + xn = m 其中xi属 ...

  7. svn:ignore eclipse开发一般忽略文件

    target.project.classpath.settings

  8. android之Fragment基础详解(一)

      一.Fragment的设计哲学 Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计.平板电脑的屏幕比手机的大得多,有 ...

  9. VScode常用几个前端插件live HTML previewer和debugger for chrome的配置

    之前一直都是用sublime Text和chrome配合来写前端的页面,自从知道了有liveReload这个神奇的插件之后感觉爽翻了啊.好吧跑远了........ 话说最近微软搞了个VScode,听说 ...

  10. JAVA学习笔记(二):eclipse智能提示(转)

    存盘 Ctrl+s(肯定知道)注释代码 Ctrl+/取消注释 Ctrl+\(Eclipse3已经都合并到Ctrl+/了)代码辅助 Alt+/快速修复 Ctrl+1代码格式化 Ctrl+Shift+f整 ...