首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Common LISP中奇怪的"EVAL: undefined function T“错误

在Common LISP中,当出现奇怪的"EVAL: undefined function T"错误时,通常是由于在代码中使用了未定义的函数T导致的。

在Common LISP中,T是一个特殊的符号,表示真值(true)。它通常用于逻辑判断和条件表达式中。然而,T本身并不是一个函数,而是一个常量。

当我们在代码中使用一个未定义的函数名时,Common LISP会将其作为一个函数调用,尝试执行该函数。由于T不是一个函数,因此会出现"EVAL: undefined function T"错误。

要解决这个错误,我们需要检查代码中是否存在使用了未定义的函数T的地方,并进行修正。可能是在某个函数调用、条件表达式或其他地方错误地使用了T作为函数名。

以下是一些常见的Common LISP函数和常量,供参考:

  1. 函数:CAR、CDR、CONS、LIST、APPEND、LENGTH、REVERSE、NTH、MEMBER、REMOVE、SUBST、MAPCAR、APPLY、FUNCALL、FORMAT、READ、WRITE等。这些函数用于列表操作、字符串处理、输入输出等。
  2. 常量:NIL、T、PI、MOST-POSITIVE-FIXNUM、MOST-NEGATIVE-FIXNUM等。NIL表示空值或假值,T表示真值,PI表示圆周率,MOST-POSITIVE-FIXNUM和MOST-NEGATIVE-FIXNUM表示整数的最大值和最小值。

请注意,以上只是一些常见的函数和常量示例,并不是完整的列表。在实际开发中,可能会使用到更多的函数和常量。

关于Common LISP的更多信息和详细介绍,您可以参考腾讯云的LISP云函数产品文档:LISP云函数

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

12种不宜使用Javascript语法

3. eval eval用来直接执行一个字符串,因为它有性能和安全性问题,并且使得代码更难阅读,因此应避免使用,直接将字符串写在代码行即可。...9. function语句 在Javascript定义一个函数,有两种写法: function foo() { } 和 var foo = function () { } 两种写法完全等价。...11. new语句 Javascript是世界上第一个被大量使用支持Lambda函数语言,本质上属于与Lisp同类函数式编程语言。但是当前世界,90%以上程序员都是使用面向对象编程。...myCat = new Cat('mimi'); 这种利用函数生成类、利用new生成对象语法,其实非常奇怪,一点都不符合直觉。...但是在Javascript,void是一个运算符,接受一个运算数,并返回undefined。 void 0; // undefined 这个命令没什么用,而且很令人困惑,建议避免使用。

50650

12种不宜使用Javascript语法

3. eval eval用来直接执行一个字符串。这条语句也是不应该使用,因为它有性能和安全性问题,并且使得代码更难阅读。 eval能够做到事情,不用它也能做到。...9. function语句 在Javascript定义一个函数,有两种写法:   function foo() { } 和   var foo = function () { } 两种写法完全等价。...11. new语句 Javascript是世界上第一个被大量使用支持Lambda函数语言,本质上属于与Lisp同类函数式编程语言。但是当前世界,90%以上程序员都是使用面向对象编程。...  var myCat = new Cat('mimi'); 这种利用函数生成类、利用new生成对象语法,其实非常奇怪,一点都不符合直觉。...但是在Javascript,void是一个运算符,接受一个运算数,并返回undefined。   void 0; // undefined 这个命令没什么用,而且很令人困惑,建议避免使用。 (完)

66791
  • javascript delete

    最后,在内置 eval 函数文本被解析为 Eval code....Safari 2.x 甚至有更多问题 —— 删除非引用(例如delete 1;)将会抛出错误; function 声明会创建 可删除 properties (但奇怪是,variable 声明就不能删除...看看误解彼此反弹也是有趣,在同一 thread 中有人首先建议删除变量(当然是行不通,除非是在 eval 声明),然后另一个人提供了 一份错误修正 可以如何在全局代码删除变量而不是Function...Safari 2.x 甚至有更多问题 —— 删除非引用(例如delete 1;)将会抛出错误; function 声明会创建 可删除 properties (但奇怪是,variable 声明就不能删除...看看误解彼此反弹也是有趣,在同一 thread 中有人首先建议删除变量(当然是行不通,除非是在 eval 声明),然后另一个人提供了 一份错误修正 可以如何在全局代码删除变量而不是Function

    3K80

    解释器模式举例-柯里化前生今世(四):编译器与解释器

    关于   本文是系列文章第四篇,发布在业余程序员个人修养这个专栏: 柯里化前生今世(一):函数面面观   柯里化前生今世(二):括号神教   柯里化前生今世(三):语言和同像性   ...格林斯潘第十定律:   任何C或程序复杂到一定程度之后,都会包含一个临时开发、不合规范、充满程序错误、运行速度很慢、只有一半功能Common Lisp实现。   ...,eval-lambda) (,is-function-call-list?...,eval-function-call-list))))   和其他解释器教材不同是,我没有写那么多if-else,   而是把决策模式提取出来了,这样会更清晰一些。   ...eval-exp会根据exp具体形式,寻找相应处理方式,   而各个处理方式,还有可能再用到eval-exp来处理子表达式。   因此,这是一个递归执行过程。

    30510

    Lisp 学习资源集锦

    /lib/list/294 segmentfault:https://segmentfault.com/t/lisp common-lisp:https://common-lisp.net/ 一个国外教程网...2)《ANSI Common LISP》Paul大神作品,他《黑客与画家》是必读经典,会改变三观说。...4)《Practical Common Lisp》大神田春翻译中文版《实用Common Lisp编程》已经出版。 5)《On Lisp》也是Paul大神作品,好像是进阶修炼版本。...8)《Artificial Intelligence :A Modern Approach》《人工智能:一种现代方法》看了个开头,从人工智能在各个学科基础开始,一开始就来列人名了,哲学,数学,心理学...很有意思 9)《Common Lisp:The language》,堪比C++ Primer长度,1100多页,大神说犹如高峰,待攀。

    1.8K30

    深入浅出 Babel 下篇:既生 Plugin 何生 Macros

    这种数据即程序、程序即数据概念,使得Lisp可以轻松地自定义宏. 不妨来看一下Lisp定义宏示例: ; 使用defmacro定义一个nonsense宏, 接收一个function-name参数....,这里有一个Javascript实现 注意:宏一般在编译阶段被展开, 下面代码只是为了协作你理解上述Lisp代码 function nonsense(name) { let rtn eval...因为它专注于具体 AST 节点,见下文 另外,当配置出错时,Macro可以得到更好错误提示 有利有弊,Babel Macro 肯定也有些缺陷,例如相对于插件来说只能显式转换,这样代码可能会比较啰嗦,...例如: import evalm from 'eval.macro' const x = evalm` function fib(n) { const SQRT_FIVE = Math.sqrt(5...: true, value: 10 } t.evaluate(parse("!

    1.5K31

    Lisp语言简介_c++是什么语言

    LISP有很多种方言,各个实现语言不完全一样。1980年代Guy L. Steele编写了Common Lisp试图进行标准化,这个标准被大多数解释器和编译器所接受。...在Unix/Linux系统,还有一种和Emacs一起Emacs Lisp(而Emacs正是用Lisp作为扩展语言进行功能扩展)非常流行,并建立了自己标准。...LISP语言主要现代版本包括Common Lisp和Scheme。 基本介绍 LISP 是第一個函數型程式語言,区别于C/Java等命令型编程语言。...在 Lisp 我们习惯用原子 t 表示真,而用空表 () 表示假。...反之一个被引用表仅仅被视为表 > (atom ‘(atom ‘a))() 引用看上去有些奇怪,因为你很难在其它语言中找到类似的概念,但正是这一特征构成了 Lisp 最为与众不同特点——代码和数据使用相同结构来表示

    2.3K20

    严格模式 – JavaScript

    eval 代码,Function 代码,事件处理属性,传入 setTimeout方法字符串和包含整个脚本开启严格模式会如预期一样工作。...当然也可以在代码显式开启严格模式, 但这样做并不是必须. function strict1(str){ “use strict”; return eval(str); // str代码在严格模式下运行...语法错误 eval(“var y; delete y;”); // !!! 语法错误eval和arguments变简单 严格模式让arguments和eval少了一些奇怪行为。...两者在通常代码中都包含了很多奇怪行为: eval会添加删除绑定,改变绑定好值,还会通过用它索引过属性给形参取别名方式修改形参....语法错误 f2(); } function baz() { // 合法 function eit() { } // 同样合法 } 这种禁止放到严格模式并不是很合适,因为这样函数声明方式从

    1K30

    一个粗心Bug,JSON格式不规范导致AJAX错误

    一、事件回放 今天工作时碰到了一个奇怪问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里。...打开浏览器Network,排查,发现了一个奇怪现象 在preview里面看数据 ? 我那句 success: true 怎么会变成 undefined: true。这是什么鬼。。。...(result) { success(eval('(' + result + ')')); // 使用eval解析了一下 }, error: function...在jQueryapi网站上看到了这么一句话 在 jQuery 1.4 ,JSON 格式数据以严格方式解析,如果格式有错误,jQuery都会被拒绝并抛出一个解析错误异常。...也就是说 { "success": undefined } 这么一个JSON,是错误。 3、对于number类型,表示方法如下 ? 用科学计数法时候会牵涉到。

    1.5K40

    一名ClojurianEmacs配置

    这就不得不提起Clojure这门lisp方言,出于对lisp和函数式编程痴迷,我选择了基于JVMClojure作为自己偏好语言,而emacs天生为lisp而生。..."http://melpa.org/packages/")点号(dot)表示法也比较奇怪,其实这是lispDotted pair表示法,用法和普通列表类似,但因为是pair缘故,你可以使用(...模块化 如果把什么东西都揉到init.el文件,这个文件一定会很快变得臃肿不堪。为了解决这个问题,需要引入模块化思想——把特定功能配置放到独立文件,然后require进来。...(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) 看似,接下来就可以在每个独立模块文件编写各种功能配置...当你正在编译文件时候,包宏就会原地展开,然后被eval-when-compile宏加载进内存并被编译成字节码,供后续解析器执行。

    2.8K20

    delete奇怪行为

    如getComputedStyle()) 深度遍历 当然,直接添一个getValue()也能达到想要效果,但getter对使用方更友好,外部完全不知道值是提前算好还是现算 delete奇怪行为分为...至于evalX能被删掉原因,就比较有意思了,需要了解几个东西:执行环境、变量对象/活动对象、eval环境特殊性 执行环境 执行环境分为3种:Global环境(比如script标签圈起来环境)、Function...) P.S.变量对象与活动对象这种“玄幻”东西没必要太较真,各是什么有什么关系都不重要,理解其作用就好 eval环境特殊性 eval执行环境声明属性和函数将作为调用环境(也就是上一层执行环境)变量对象属性存在...此外,还有一个有意思尝试,既然eval直接拿外层变量对象,而且eval环境声明东西没有不能删天赋,那么二者起来,是不是能够覆盖强删?...var x = 1;/* Can't delete, `x` has DontDelete */delete x; // false typeof x; // "number"eval('function

    2.3K30
    领券