我正在阅读"Little Schemer"一书,并完成各种功能.一般来说,我最终得到与书籍相同的版本,但不是eqlist ?,这是一个测试两个列表相等的函数.
我已经尝试过测试我的版本,它会传递任何我抛出的东西.然而它与"Little Schemer"版本略有不同,我希望有人对我是否遗漏某些东西持有意见 - 我怀疑是这样的.
我的版本:
(define eqlist?
(lambda (list1 list2)
(cond
((and (null? list1)(null? list2))#t)
((or (null? list1)(null? list2))#f)
((and (atom? list1)(atom? list2))(eqan? list1 list2))
((or (atom? list1)(atom? list2)) #f)
(else
(and(eqlist? (car list1) (car list2))
(eqlist? (cdr list1) (cdr list2)))))))
Run Code Online (Sandbox Code Playgroud)
这本书的版本:
(define eqlist2? ;This is Little Schemer's version
(lambda (list1 list2)
(cond
((and (null? list1)(null? list2)) #t)
((or (null? list1)(null? list2)) #f)
((and (atom? (car list1))(atom? (car list2)))
(and (eqan? (car list1)(car list2))(eqlist2? (cdr list1)(cdr list2)))) …Run Code Online (Sandbox Code Playgroud) 可能重复:
java中有什么"@Override"?
到目前为止,我从来没有在方法之前放置"@Override".我看到了一些代码示例,但我不明白它的实用性.我喜欢一些解释.
非常感谢,
JDelage
我在低级别了解静态(编译时)和动态(运行时)绑定是什么.
我在某种程度上理解为什么知道这一点很重要(例如,仿制上解决泛型有助于解释你能做什么和不做什么等等).
我不明白为什么选择是以某种方式进行的 - 例如,Java对重载方法使用静态绑定,对重写方法使用动态绑定.这是为什么?它是一种设计选择吗?对于理解Java深层功能的人来说,这是一个显而易见且不可避免的事情,还是需要学习(而不是理解)的东西?
我正在读这个:http:
//java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.20.2
他们说:
考虑示例程序:
class Point { int x, y; }
class Element { int atomicNumber; }
class Test {
public static void main(String[] args) {
Point p = new Point();
Element e = new Element();
if (e instanceof Point) { // compile-time error
System.out.println("I get your point!");
p = (Point)e; // compile-time error
}
}
}
Run Code Online (Sandbox Code Playgroud)
的
instanceof表达不正确,因为没有的实例Element或它的任何可能的亚类(没有在这里示出)的可能可能是任子类的实例Point.
为什么这会导致错误,而不是简单地instanceof返回false?
谢谢,
JDelage
如果我要写一个新的php文件,并包含echo "current mb_internal_encoding: ".mb_internal_encoding(),输出值将来自哪里?如何"决定"/它是如何治理的?
背景:我写了一个网络应用程序,我认为我已经完成了将整个网站设置为utf-8所做的一切,并发现我仍需要手动设置此值...
这是一个绝对的初学者的问题,但根据最新的播客,我明白没有问题太新手了.
我有0编程经验,我想学习C,所以我开始学习K&R.我正在使用Windows XP笔记本电脑,我打算使用Notepad ++进行编写,使用Code :: Blocks进行编译.
这是我的问题:一旦我在Notepad ++中编写了"hello world"程序,我应该如何保存,编译和运行它?
编辑和新问题:当我从Code :: Blocks构建和运行时,我得到带有"hello world"消息的提示窗口.它一直打开,直到我手动关闭它.但是,当我双击.exe文件时,提示只是闪烁并消失,为什么呢?
非常感谢,
JD
编辑:根据这里的建议,我将使用Code :: Blocks作为IDE.
作为家庭作业的一部分,我必须用Java编写一个简单的国际象棋游戏.我想借此机会尝试递归,我想知道在国际象棋中是否有明显的候选递归代码?
这是我的问题的后续问题:
如何在MySQL中实现多对多层次结构
,这里:
如何在MySQL 中记录顺序的记录集合.
简而言之,我想在MySQL中实现一个食谱表和另一个指令.配方是一系列连续的指令或其他配方.例如,您可以想象一个Peach_preserve配方,一个Peach_tart使用该配方,以及Peach_preserve一系列其他步骤(说明). Peach_preserve可以用于许多其他食谱.
我读过Bill Karwin关于闭包表的博客文章,我认为这个解决方案最能解决我的挑战(我的层次结构是多对多的,步骤是顺序的).所以例如我会:
recipe
id name
1 Peach preserve
2 Cubed peeled peaches
3 Fresh peaches
4 Powdered sugar
5 Cook together
6 Peel and cut in chunks
7 Mix
step (or instruction)
id desc
1 Cook together
2 Buy peaches
3 Buy sugar
4 Peel and cut in chunks
5 Mix
recipe_instruction
(Ancestor) (Descendant)
recipe_id step_id depth descendant_is_instruction
3 3 …Run Code Online (Sandbox Code Playgroud) 这是MySQL表创建的模式.AUTO_INCREMENT=3最后一行是什么意思?
CREATE TABLE IF NOT EXISTS `test_b` (
`ID_b` int(10) unsigned NOT NULL AUTO_INCREMENT,
`stuff` varchar(1000) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`ID_b`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
Run Code Online (Sandbox Code Playgroud) 我将以一个user对象为例.用户需要注册,登录,注销,编辑(例如,电子邮件更改)等.
所以一方面我有一个user对象,它包括各种类变量(伪,电子邮件等)以及getter和setter,也许还有一些不处理db的函数.
另一方面,我有一个DAO类,它是通过各种MySQL/PDO查询直接处理数据库的对象(创建记录,更新,检索信息等).
是否有任何理由不让user对象直接与对象交互DAO?换句话说,当Controller请求与现有user实例相关的数据库查询时(例如,在注册过程中),它是否应该简单地调用user其自身调用函数的函数DAO,或者它们之间是否应该有一个层?
我见过控制器调用第3类与DAO交互的user示例,并将实例作为arg 传递.有时相反,第三层负责创建user实例并处理DAO.在我看来,用于处理的所有函数DAO都可以驻留在user对象中.我错过了什么?
java ×4
mysql ×2
php ×2
c ×1
chess ×1
inheritance ×1
instanceof ×1
localization ×1
overriding ×1
recursion ×1
scheme ×1
sql ×1
syntax ×1
unicode ×1