- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 Peter Norvig 的人工智能编程范式的练习 1.2 中,要求读者
Write a function to exponentiate, or raise a number to an integer power. For example: (power 3 2) = 3^2 = 9.
提供的解决方案是这样的:
(defun power (x n)
(cond ((= n 0) 1)
((evenp n) (expt (power x (/ n 2)) 2))
(t (* x (power x (- n 1))))))
这当然是对的。现在我觉得有点傻,但是他使用的不是他实现的功能的内置版本吗?为什么要使用 expt
来实现 power
?或者 expt
和 power
有什么区别?
最佳答案
看起来他只将它用于最简单的平方数情况,而不是所有一般情况。可能是因为这本书很早,在他教如何绑定(bind)局部变量之前,所以他不想写:
(defun power (x n)
(cond ((= n 0) 1)
((evenp n)
(let ((temp (power x (/ n 2)))
(* temp temp)))
(t (* x (power x (- n 1))))))
它不能使用 (power (power x (/n 2)) 2)
因为这会导致无限递归。尽管这可以通过添加另一个基本案例来解决:
(defun power (x n)
(cond ((= n 0) 1)
((= n 2) (* x x))
((evenp n) (power (power x (/ n 2)) 2))
(t (* x (power x (- n 1))))))
关于lisp - Peter Norvig 的人工智能编程范式中的练习 1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30358487/
我知道我不应该质疑 Peter Below,但我刚刚发现了这个代码片段 Text File Size当尝试调试一些旧的 D5 代码时。 在我看来,Sysutils.FindClose 应该作为函数的最
Peter Norvig 的著名作品 spellchecker (Java 8 版本 here )能够纠正单个单词,如果训练数据中出现与该单词接近的内容。但是我该如何调整它来处理整个短语。例如,如果我
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
在彼得诺维格的 PAIP ,第 18.12 节,第。 643(不幸的是不是谷歌图书预览的一部分),他包括二维数组,如: (/ (aref '#2A((.1 .4 .7)
Proj4JS 库是否支持 Gall-Peters 投影?我似乎找不到它的投影首字母缩写词? 最佳答案 您要查找的代码是“cea”,表示等积圆柱。 实际的定义是: "+proj=cea +lon_0=
在 Peter Norvig 的人工智能编程范式的练习 1.2 中,要求读者 Write a function to exponentiate, or raise a number to an int
Peter Norvig 的 PAIP 书籍包含此 code作为排列问题的解决方案(为简洁起见,删除了某些部分) (defun permutations (bag) ;; If the input
我看到了 Michael Sparks 对 Peter Norvig's Spell Checker 的非常有趣的剖析在伦敦举行的 SO DevDays 上,这让我想知道是否有人尝试用另一种语言(例如
前两页给出了PE可执行文件和COFF格式的布局图。 所以,我的问题是, 我假设 Windows 目标文件和可执行文件是 COFF 格式,那么 PE 可执行文件格式是什么? 假 最佳答案 Microso
我正在使用 Peter Higgins pubsub library我遇到了一个有趣的问题: 如果使用特定的发布事件多次取消订阅,我会在 pubsub 的第 33 行收到错误 TypeError: t
我正在使用 JQuery Steps 在 WebForms 项目中设置向导,并使用 Peter Blum 的 VAM 验证器来确保输入正确。以下是我的流程第一步的示例: St
我尝试了 Peter Friese 的 tene 教程。对于那些不知道我在说什么的人,这里有一个链接:http://www.peterfriese.de/using-teneo-and-emf-to-
在阅读 Peter Norvig 的 Python IAQ 时,我遇到了这个代码片段: def _if(test): return lambda alternative: \
我试图理解 GORM Gotchas Part 2 中这句话的含义。 : The advantage of this syntax is that you can define multiple ca
这是@Peter Meyer 在此问题 ( What does it mean to "program to an interface"? ) 中给出的答案的后续问题。 首先,让我先说我不愿意提出这个
我拼命尝试编译Peter Fillmore's fork from github . 其他分支在同一机器/操作系统上编译良好,但无法通过比较 Makefile 等找到错误。其他人也有类似的问题,但也找
我想了解 Peter Norvig 的拼写校正器是如何工作的。 关于他的 jupyter-notebook 标题 here他解释说,如何在没有空格分隔单词的情况下分割字符序列。它工作正常,当顺序中的所
我正在使用由 L Peter Deutsch 完成的 C 中的 MD5 实现从 page 中找到和来自 sourceforge.net 的源代码. md5main.c文件的main函数中的代码已修改如
我有一个 Python 脚本,它使用 urllib2.urlopen 加载网页,执行一些不同的操作,然后使用 print 输出结果。然后我们像这样在 Windows 上运行该程序: python pr
我卡在了第 6 章的部分。这是一个地牢文字冒险游戏,有房间和一个四处移动的玩家。对于 find_room_in_dungeon 方法中使用的 .detect 方法,我不断收到 noMethod 错误。
我是一名优秀的程序员,十分优秀!