小编Ran*_*K02的帖子

Prolog:毕达哥拉斯三重奏

我有这个代码使用一个上限变量N,它应该终止为毕达哥拉斯三元组的X和Y. 然而它只有在达到上限时才会冻结.不知道如何使用切割来阻止回溯.代码是:

is_int(0).
is_int(X) :- is_int(Y), X is Y+1.
minus(S,S,0).
minus(S,D1,D2) :- S>0, S1 is S-1, minus(S1,D1,D3), D2 is D3+1.

pythag(X,Y,Z,N) :- int_triple(X,Y,Z,N), Z*Z =:= X*X + Y*Y.

int_triple(X,Y,Z,N) :- is_int(S), minus(S,X,S1), X>0, X<N,
                                  minus(S1,Y,Z), Y>0, Y<N.
Run Code Online (Sandbox Code Playgroud)

将被称为,例如,

?- pythag(X,Y,Z,20).
Run Code Online (Sandbox Code Playgroud)

prolog pythagorean failure-slice

4
推荐指数
1
解决办法
2001
查看次数

执行SQL语句时出现语法错误

我有以下方法删除数据库,但我得到一个语法错误,我不知道发生了什么.

public void deleteDB(){
    try{
        Statement s = conn.createStatement();
        System.out.println("Deleteting database...");
        s.execute("DROP DATABASE Courses");
        System.out.println("Database deleted.");
    }
    catch(SQLException error){
        System.err.println("Unable to delete database.");
        error.printStackTrace(System.err);
        System.exit(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

我用以下方法调用该方法:

UpdateDB update = new UpdateDB();
update.connectDatabase(dbName);
update.deleteDB();
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "DATABASE" at line 1, column 6.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

java sql embedded-database

2
推荐指数
1
解决办法
1510
查看次数

如何检查类类型并查看它是否实现了接口

我有许多不同的对象,包括一个ArrayList中Log,Frog,Turtle,Rock等我想执行一些动作只适用于实现和接口的类的类型,IAction.

Java中是否有内置功能可以做到这一点?我的尝试:

for(Object o : objectList){
    if(o.getClass instanceof IAction){ // doesnt work
        // doWork
    }
}
Run Code Online (Sandbox Code Playgroud)

java oop

2
推荐指数
1
解决办法
41
查看次数

标签 统计

java ×2

embedded-database ×1

failure-slice ×1

oop ×1

prolog ×1

pythagorean ×1

sql ×1