小编Tom*_*Tom的帖子

Java中的clone()方法

据我所知,该方法clone()使我们能够在Java中复制对象(无参考).但我也读到,副本很浅.那有什么意义呢?这个clone()方法给了我哪种能力,一个简单的辅助不具备?

java

9
推荐指数
2
解决办法
3196
查看次数

序言 - 无限规则

我有下一个规则

% Signature: natural_number(N)/1
% Purpose: N is a natural number.
natural_number(0).
natural_number(s(X)) :-
   natural_number(X).

ackermann(0, N, s(N)). % rule 1
ackermann(s(M),0,Result):-
   ackermann(M,s(0),Result). % rule 2
ackermann(s(M),s(N),Result):-
   ackermann(M,Result1,Result),
   ackermann(s(M),N,Result1). % rule 3
Run Code Online (Sandbox Code Playgroud)

查询是:ackermann (M,N,s(s(0))).

现在,据我所知,在第三次计算中,我们得到了一个无限的搜索(失败分支).我检查一下,我得到了一个有限的搜索(失败分支).

我将解释:在第一个中,我们得到了M = 0,N = s(0)的替换(规则1 - 成功!).在第二个中,我们得到M = s(0)的替换,N = 0(规则2 - 成功!).但现在呢?我尝试匹配M = s(s(0))N = 0,但它有一个有限的搜索 - 失败分支.为什么编译器不会写我"失败".

谢谢.

prolog successor-arithmetics

6
推荐指数
2
解决办法
750
查看次数

方案 - 方程式?比较两个字符串?

我的程序有问题.

我有一个比较2字符串的条件:

(if(eq?(exp1)(exp2)))

当exp1给我一个字符串,exp2给我一个字符串.当然,当我改变"eq?"时 到"=",它给我下一个问题:

=:期望类型<number>作为第二个参数,给定:ie; 其他论点是:即.

当我运行程序时,函数不会进入"if"函数中的第一个表达式,并进入第二个表达式(意味着条件为false).

我能做什么?

谢谢.

scheme

5
推荐指数
1
解决办法
7735
查看次数

Java - 定义 - “替换原则”

我读了一篇关于继承的摘要,它总是使用“替换原则”的定义。但它并没有解释这个原理的含义。

这是什么原理?

谢谢你。

java

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

在Scheme中对嵌套的let和lambda进行排序

Scheme中两个函数之间的区别是什么,一个定义如下 -

(define doSomething
    (lambda (x)
          (let (f (100))
               (f x))))
Run Code Online (Sandbox Code Playgroud)

而另一个是这样的? -

(define doSomething
          (let (f (100))
            (lambda (x) 
               (f x)))) 
Run Code Online (Sandbox Code Playgroud)

换句话说,如果它在它lambda之前let或之后有什么关系呢?

lambda scheme

3
推荐指数
2
解决办法
1396
查看次数

C++和Java - 重载运算符

我很难理解在C++和Java中重载运算符的主题.

例如,我定义了一个新的类Fraction:

class Fraction { 
public: 
    Fraction (int top, int bottom) { t = top; b = bottom; } 
    int numerator() { return t; } 
    int denominator() { return b; } 
private: 
    int t, b; 
};
Run Code Online (Sandbox Code Playgroud)

我想重载操作员<<来打印Fraction.我是怎么做到的 我需要在Class Fraction或Class Fraction之外重载它吗?

在java中 - 是否可能重载运算符?我怎么能在那里做(例如,我想重载运算符+).

如果有关于这个主题的心理,那将是伟大的.

c++ java

3
推荐指数
1
解决办法
645
查看次数

C:删除数组

我是c的新人.我想创建数组,然后删除它,然后将另一个数组放入其中.我该怎么做?

c

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

方案 - 功能"如果"

在下一个代码中

(if (exp1)
    (Do1)
    (Do2))
Run Code Online (Sandbox Code Playgroud)

当exp1为真时,(Do1)正在发生.我的问题是,如果条件为真,我想做件事.意思是 - 我想添加一个列表链接,并再次调用该函数.

so Do1 in my program is:
           ((cons (car hello) list1)
            (Myfunction (cdr data) list1))
Run Code Online (Sandbox Code Playgroud)

它给了我下一个问题:

procedure application: expected procedure, given: ((439043 Mylist)); arguments were: ()
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

谢谢.

scheme

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

SML - 如果条件有一些"或"

我想制作一个像这样的if条件:

if

 ((head(c) = 1) or (head(c) = ~1) or (head(c) = ~5) or (head(c) = ~17) or (head(c) = 0))
count +1
else..
Run Code Online (Sandbox Code Playgroud)

功能头返回'a;

它给了我下一个错误:operator is not a function [tycon dismatch] operator:bool in expression

问题是什么?谢谢.

sml

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

java和c ++中的实例变量

据我所知,在java中,所有变量都是引用.

在下一个代码:

class Parent { 
    public int x = 12; 
} 
class Child extend Parent { 
public int x = 42; 
} 
Parent p = new Parent(); 
System.out.println(p.x); 
12 
Child c = new Child(); 
System.out.println(c.x); 
42 
p = c; // be careful here! 
System.out.println(p.x); 
12
Run Code Online (Sandbox Code Playgroud)

我认为这里没有切片,因为我们谈论参考.出于这个原因,我不明白为什么"12"要打印.p现在指向的区域c,c.x是42.

在C++的下一个代码中也会发生同样的情况:

class Parent { 
  public:
    void example () { cout << "Parent" << endl; } 
}; 
class Child : public Parent { 
  public: 
    void example () …
Run Code Online (Sandbox Code Playgroud)

c++ java

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

标签 统计

java ×4

scheme ×3

c++ ×2

c ×1

lambda ×1

prolog ×1

sml ×1

successor-arithmetics ×1