Jump to Navigation

博客

clisp语言中的字符

1. 介绍
函数:char-code 计算一个字符的ASCII值。
函数:code-char 根据ASCII值构造一个字符。

char-code 函数的返回值范围:
binaries built without UNICODE support with UNICODE support
CHAR-CODE-LIMIT 2^8 = 256 17 * 216 = 1114112

其中CHAR-CODE-LIMIT 变量为系统定义,表示可能的ASCII极限值,但不包括这个值。

内置数据类型 EXT:STRING-CHAR 和 BASE-CHAR 都等价于 CHARACTER。

函数 EXT:CHAR-WIDTH 计算字符的宽度,即占用的字节数。
对于不占用空间的字符,返回值为 0 (像控制字符及其组合)
对于东亚又字节字符,返回值为 2
其他所有字符,返回值皆为 1

2. 特殊字符说明

我Gentoo Linux桌面的常用软件

桌面:KDE-4.3-svn

浏览器: opera (85%+) firefox

模拟终端: konsole terminal(xfce4)

GUI编辑器: geany

终端编辑器: emacs(开发IDE,开机启动) vim(小量修改)

办公软件: openoffice

IM: pidgin

SFTP工具: nullfxp

clisp语言中的数字

1. 数字数据类型

NUMRER , REAL , RATIONAL, INTEGER, FLOAT

2. 数字的概念

数字计算函数:
ext:! 计算数字的阶乘
CL> (! 2)
2
CL> (! 3)
6
CL> (! 30)
265252859812191058636308480000000

EXT:EXQUO 计算两个数字的整数商,如果不能整除,则会报错。(对整除的时候,这个函数比 / 效率高)。
CL> (exquo 6 2)
3
CL> (exquo 6 5)
*** - quotient 6 / 5 is not an integer

XGCD ???没看太明白这个计算什么的。

EXT:MOD-EXPT (mod-expt k l m) 等于 (MOD (EXPT k l) m), 但对大数情况,这个函数更有效率。

一个比快速算法更快的排序算法: flashsort

现在最快的排序算法是快速排序算法,它的时间复杂度达到O(n log n).但是还有一种排序算法,就是FlashSort排序算法.它的时间复杂度达到O(n),超过了前者.FlashSort排序是基于分类的算法,它的实现思想很简单,是利用构造出来的索引来排序.举一个简单的例子,比如有一百个整数,你很容易就能把它们放在数组的正确位置上,根本不需要作任何比较.

flashsort 主页: http://www.neubert.net/FSOIntro.html

附C实现代码:

clisp语言中的包

1. 包简介

clisp中的包就像一个名字空间一样,可在包中定义变量、函数等
包的另一个作用分离不同功能的模块代码组织。
包具有导入导出的概念,有特定关键字实现这个功能。

make-package 包声明函数
(make-package package-name &key nicknames use)

package-name 包名字
&key 表示后面的参数使用键名/值表示法传入参数。
nicknames 简化名称列表结构,可叫几个不同的名字,如 '("temp" "TEMP" "tmp")
use 引入的包列表结构,可以引入多个。

CL> (make-package "cl_test" :nicknames "ct" :use 'cl-user)

clisp 语言中的结构体

1. defstruct语法结构:

(defstruct struct-name (filed1 default-value :type filed-type)
(filed2 default-value2 :type filed-type2) ... )

struct-name 为定义的结构体的名字,可以是clisp允许的符号名。
field1 结构第一个成员变量名,可以是clisp允许的任何符号名。
default-value 该成员的默认值
:type 后面的值指定该成员的数据类型
field-type 该成员的数据类型,可以是string, integer 等clisp实现的数据类型。

field2, default-value2, field-type2与上同。

2. 构造clisp结构体

定义了结构体后,可以使用MAKE- + struct-name函数构造结构体
如定义一个结构体 person,

CLISP> (defstruct person (name "john" :type string)
(age 23 :type integer))

clisp语言中的循环语句

1. loop 基本循环语句

语法结构:
(loop for x from a to b do () )
x 为循环变量,在do语句中使用。
a 变量或者常量,循环开始
b 变量或者常量,循环结束。b必须大于或等于a。

2. dolist 宏循环语句

语法结构:
(dolist (var list-form [result-form]))
var 循环变量,循环过程中的值为list-form中的每个元素。

3. dotimes 宏循环语句

语法结构:
(dotimes (var count-form [result-form])

count-form 数值变量或常量。
var 循环变量,在result-form中使用。

dmalloc用法快速入门

dmalloc是一个简单易用的C/C++内存leak检查工具,以一个运行库的方式发布。

dmalloc能够检查出直到程序运行结束还没有释放的内存,并且能够精确指出在
哪个源文件的第几行。

dmalloc 主页: http://dmalloc.com

支持的平台:AIX, BSD/OS, DG/UX, Free/Net/OpenBSD, GNU/Hurd, HPUX, Irix, Linux, MS-DOG, NeXT, OSF, SCO, Solaris, SunOS, Ultrix, Unixware, Windoze, and even Unicos on a Cray T3E

最新版本: 5.5.2

安装:下载 http://dmalloc.com/releases/dmalloc-5.5.2.tgz

wine中文乱码解决方法

把下面的代码保存为zh.reg

然后终端执行wine /home/user/.wine/driver_c/windows/regedit.exe zh.reg

从Windows目录下的Fonts里的simsun.ttc复制到/home/user/.wine/drive_c/windows/Fonts里面。

linux下网线接入状态检测

现在有两个工具软件包mii-tools和ethtool 中包含检测代码。

mii-tools中的检测代码如下:

页面

订阅 RSS - 博客


Main menu 2

by Dr. Radut