Common Lisp 中的相等性判断

Common Lisp 判断对象是否相等的函数比较多,这里记录一下目前遇到的用于判断相等的函数。 相等性判断函数 = 函数 = 用于判断数值(numbers)是否相等(不判断类型),并且只能用于判断数值类型的元素。 语法: ;;; = &rest numbers+ => generalized-boolean (= 1 1.0 #c(1 0)) ; => T CHAR= / STRING= char= 用于判断多个字符是否相等,区分大小写。此外,不同实现中如果定义两个字符不同,char= 返回 NIL。 If two characters differ in any implementation-defined attributes, then they are not char=. 语法: ;;; char= &rest characters+ => generalized-boolean (char= #\d #\d) ; => T string= 用于判断多个字符串是否相等,区分大小写。 语法: ;;; string= string1 string2 &key start1 end1 start2 end2 => generalized-boolean (string= "foo" "foo") ; => T 可以比较两个字符串中指定的子序列。...

2020-06-03 · 2 分钟 · 270 字

Python 进程间通信

进程间通信的几种方式 参考维基百科的分类,进程间通信主要有以下几种: 文件(File) 信号(Signal) 套接字(Socket) Unix 域套接字(Unix domain socket) 消息队列(Message queue) 匿名管道(Anonymous pipe) 命名管道(Named pipe) 共享内存(Shared memory) 消息传递(Message passing) 内存映射文件(Memory-mapped file) 看下使用 Python 怎么实现。 环境:Arch Linux + Python3.8 文件 符合直觉,数据存在硬盘上,可基于文本或二进制。 对于 pa.py SHARED_FILE = '/tmp/shared_file' def send(): with open(SHARED_FILE, 'w', encoding='utf-8') as f: f.write('some data...') 对于 pb.py def receive(): with open(SHARED_FILE, encoding='utf-8') as f: print(f.read()) 为了避免竞争,数据流向是单向的,可使用两个或以上的文件进行双向通信。 信号 通信偏向底层,且一般不用于传输数据。 Python 中有 os.kill(pid, sig) 以及 signal 模块。 os.kill 发送 sig 给进程 pid,一般会意外终止进程 pid。...

2020-05-25 · 4 分钟 · 679 字