lisp 符号和符号绑定

符号的含义

lisp中符号的类型是SYMBOL,一个符号就是这一类型的值.符号和整数其实差不多,只不过一个是数字表示的一个可以用字母表示.

* (type-of 'aaa)

SYMBOL
*

相同的符号总是EQ的

* (eq 'a 'a)

T

符号绑定

一个符号可以同时绑定到变量 函数 类上,

CL-USER> (find "A" (map 'list #'symbol-name (loop for s being the symbol collect s)) :test #'string=)
NIL
CL-USER> (setf a "ddd")
; in: SETF A
;     (SETF A "ddd")
; ==>
;   (SETQ A "ddd")
;
; caught WARNING:
;   undefined variable: A
;
; compilation unit finished
;   Undefined variable:
;     A
;   caught 1 WARNING condition
"ddd"
CL-USER> (find "A" (map 'list #'symbol-name (loop for s being the symbol collect s)) :test #'string=)
"A"
CL-USER> (boundp 'a)
T
CL-USER> (defun a () ())
A
CL-USER> (fboundp 'a)
T
CL-USER> (defclass a () ())
#<STANDARD-CLASS COMMON-LISP-USER::A>
CL-USER> (find-class 'a)
#<STANDARD-CLASS COMMON-LISP-USER::A>

但结构和类不能绑定到同一个符号上

CL-USER> (defstruct a x y)
A
CL-USER> (defclass a () ())
; Evaluation aborted on #<SB-PCL::METAOBJECT-INITIALIZATION-VIOLATION "~@<Cannot ~S~@[ ~S~] objects into ~S metaobjects.~@:>" {1004D44943}>.
CL-USER>
时间: 2024-11-03 22:45:42

lisp 符号和符号绑定的相关文章

js 输入框只能输入中文、英文、数字、@符号和.符号正则

  只能输入英文 <input type="text" onkeyup="value=value.replace(/[^a-za-z]/g,'')"> <input type="text" onkeyup="value=value.replace(/[^a-za-z]/g,'')"> 只能输入中文.英文.数字.@符号和.符号 <input type="text" onkeyup

请教程序猿哥哥8位有符号,无符号,16位有符号无符号的问题

问题描述 16进制45转8位有符号16进制33转8位无符号16进制0BB8转16位无符号16进制1AAE转16位无符号整形16进制FE84转16位有符号整形16进制D100转16位有符号麻烦告诉如何转换,最好能附上代码,万分感谢,祝马上有钱 解决方案 解决方案二:搞了好久没搞明白头都憋大了解决方案三:坐等好人粗线解决方案四:搞不定下不了班了啊啊啊解决方案五:BitConverter.Get类型(newbyte[]{十六进制})解决方案六:只举了部分例子.其中_byte本身就是8位有符号sbyte

php中引用符号(&amp;)的使用详细介绍_php实例

与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址变量的引用. PHP 的引用允许你用两个变量来指向同一个内容 $a="ABC"; $b =&$a; echo $a;//这里输出:ABC echo $b;//这里输出:ABC $b="EFG"; echo $a;//这里$a的值变为EFG 所以输出EFG echo $b;//这里输出EFG 函数的传址调用 传址调用我就不多说了 下面直接给出代码 <?php functio

linux内核符号表kallsyms简介

在使用perf排查问题时,我们经常会发现[kernel.kallsyms]这个模块.这到底是个什么东西呢? 简介: 在2.6版的内核中,为了更方便的调试内核代码,开发者考虑将内核代码中所有函数以及所有非栈变量的地址抽取出来,形成是一个简单的数据块(data blob:符号和地址对应),并将此链接进 vmlinux 中去. 在需要的时候,内核就可以将符号地址信息以及符号名称都显示出来,方便开发者对内核代码的调试.完成这一地址抽取+数据快组织封装功能的相关子系统就称之为 kallsyms. 反之,如

探索图标设计的微观世界:从符号学说起

文章描述:浅析图标的微观世界--从符号学说起. 自图形用户界面这个概念诞生于1970年施乐完成的第一个WIMP演示以来,使得计算机用户界面从字符发展过渡到了图形时代.经过不足半世纪的迅速发展,纵观受人瞩目的苹果系统与大众化受益者的微软视窗系统,图形用户界面呈现出层出不穷的变化.面对这些精彩纷呈.感性与理性兼备的图形界面设计,图标元素无疑起着不可忽视的作用,想在此与大家一起探索下图标的微观世界. 首先,先从符号学说起. 什么是符号学? 随着人类社会的发展和文明的与日俱增,符号世界日渐丰富完善.早在

玩转PHP必了解的PHP常用符号和函数

  变量形态:   一种是True 即 真的;   另一种是False 即假的   常见变量形态:   string 字串(数字\汉字\等等)   integer 整数(1.2.3.4.5.0.-1.-2.等等)   double 浮点数(小数点)   array 数组   object 对象   可以用的方法有gettype($mix) 和settype($mix,$typename);       常用符号   \" 双引号   \\ 反斜线   \n 换行   \r 送出   \t 跳位(

实例详细讲解PHP中使用的运算符号

运算符号 运算符号可以用来处理数字.字符串及其它需要比较运算的条件.php 的运算符号和 c 语言的运算符号与很类似,对于有经验的程序设计人员,应可以很顺利的掌握 php 的运算符号. 不同的运算符号,其实还是有优先顺序,就像小时候在学数学时,老师会教:先乘除.后加减.在 php 的运算优先顺序可以参考下面的表格,在混合式的情形下,愈往下表示优先权愈高. 左至右or左至右xor左至右and左至右.=   &=   |=   /=   %=   ^=   =   +=   -=   *=左至右?

获取闭合符号中的字符串

字符串 在解决Iif问题时,为了判断iif语句是否合法,同时找出其中的条件,返回值True及返回值False.却不自然中写出了一个通用的函数模块,该函数能解决闭合符号形式中的一串文字.如"( - )"."[ - ]"等,看官也可以自己设定一个闭合符号或字符串,但必须是对称出现,如"AVB"和"Def"便可以组合成一对,这样对于字符串AVBCdeOkDef的闭合符号中.现将这些函数整理如下,参数.返回值及函数功用都已经在注释中说

控制共享库的符号可见性(一) 符号可见性简介

什么是符号和符号可见性 符号是谈及对象文件.链接等内容时的基本术语之一.实际上,在 C/C++ 语言中,符号是很多用户定义的变量.函数名称以 及一些名称空间.类/结构/名称等的对应实体.例如,当我们定义非静态全局变量或非静态函数时,C/C++ 编译器就会在对象文 件中生成符号,这些符号对于链接器(linker)确定不同模块(对象文件.动态共享库.可执行文件)是否会共享相同的数据或 代码很有用. 尽管变量和函数都可能会在模块之间共享,但是对象文件之间的变量共享更为常见.例如,程序员可能会在 a.c