小编Tor*_*dek的帖子

每次递归都可以转换成迭代吗?

一个reddit线程提出了一个显然有趣的问题:

尾递归函数可以简单地转换为迭代函数.其他的,可以通过使用显式堆栈进行转换.可每次递归转化为迭代?

帖子中的(计数器?)示例是对:

(define (num-ways x y)
  (case ((= x 0) 1)
        ((= y 0) 1)
        (num-ways2 x y) ))

(define (num-ways2 x y)
  (+ (num-ways (- x 1) y)
     (num-ways x (- y 1))
Run Code Online (Sandbox Code Playgroud)

language-agnostic iteration recursion

175
推荐指数
7
解决办法
7万
查看次数

C API设计:谁应该分配?

在C API中分配内存的正确/首选方法是什么?

我首先看到两个选项:

1)让调用者完成所有(外部)内存处理:

myStruct *s = malloc(sizeof(s));
myStruct_init(s);

myStruct_foo(s);

myStruct_destroy(s);
free(s);
Run Code Online (Sandbox Code Playgroud)

_init_destroy功能是必需的,因为一些更多的内存可分配里面,而且必须在某个地方处理.

这样做的缺点是更长,但在某些情况下也可以消除malloc(例如,它可以传递给堆栈分配的结构:

int bar() {
    myStruct s;
    myStruct_init(&s);

    myStruct_foo(&s);

    myStruct_destroy(&s);
}
Run Code Online (Sandbox Code Playgroud)

此外,调用者必须知道结构的大小.

2)隐藏mallocs in _initfreein in _destroy.

优点:代码更短,因为无论如何都会调用函数.完全不透明的结构.

缺点:无法传递以不同方式分配的结构.

myStruct *s = myStruct_init();

myStruct_foo(s);

myStruct_destroy(foo);
Run Code Online (Sandbox Code Playgroud)

我目前正在倾向于第一个案例; 然后,我不知道C API设计.

c api malloc memory-management

52
推荐指数
4
解决办法
6852
查看次数

Hibernate + Swing

什么是最佳做法?

  • 整个应用程序的单个会话
  • 每个窗口一个会话
  • 每个线程一个会话,并随机分离所有内容
  • 别的什么?

我用Google搜索,并没有达成共识.每个人都说了些什么,然后把它拿回来.我发现围绕着愚蠢的会议......

那么,这笔交易是什么?

java swing hibernate

12
推荐指数
3
解决办法
5458
查看次数

适当的OO Pong

我应该如何设计一个"正确的"OO Pong?

正确的想法是任何元素都可以改变:球,球场和桨的形状,增加障碍物,甚至"通电",如"可以将球粘到桨上".

目前,两个更紧迫的问题是:

  • 谁检查了结果?和
  • 如果发生了分裂,谁告诉球如何反弹?

oop

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

(Mis)了解Smalltalk和TDD

我正在努力学习Smalltalk,所以我通过建立一个简单的"Matrix"类来掌握语法和风格.

首先,如果链接到一个好的Smalltak教程(尽管这完全是可选的),我将不胜感激,最好不要使用GUI(我宁愿输入我的.sts而不是层次结构浏览器中的鱼来放置)他们所处的方法).

然后,关于TDD:对于我打电话的这个项目gst-sunit -f matrix.st -f matrix-test.st BaseMatrixTests,肯定会有更好的方式.在那儿?

最后,关于断言:我正在尝试编写一个方法并将断言置于其中,例如:

Matrix>>multiplyBy: anotherMatrix [
    [ self isNotEmpty ] assert.
    "Do Multiplication"
    [ result dimensions = (self height)@(anotherMatrix width) ] assert.
]
Run Code Online (Sandbox Code Playgroud)

我怎么能做那种断言?

编辑:明确标记的问题.

testing syntax tdd smalltalk

7
推荐指数
3
解决办法
2254
查看次数

添加指向JQueryUI自动完成项的链接

当用户开始在搜索框上键入时,建议页面将返回与该nama匹配的所有集合中的最新项目以及其他数据.

我想显示该项目(沿着其图像),以及"查看此集合中的所有项目"的链接.

我可以通过以下代码完成(大部分):

$('#search').autocomplete({
    source: function (request, response) {
        $.ajax({
            url: suggesturl,
            dataType: 'json',
            data: request,
            success: function (data) {
                response(data.map(function (value) {
                    return {
                        'label': '<img src="' + value.thumbsmall + '" />' + value.name + '<a href="/">More items from this collection...</a>',
                        'value': value.fullname
                    };  
                }));
            }   
        }); 
    },  
    minLength: 3
})
Run Code Online (Sandbox Code Playgroud)

问题是,虽然链接出现在框中,但当它被单击时,它会被忽略,并执行默认select操作(项目value被放入文本框).

jquery jquery-ui autocomplete jquery-autocomplete

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

设计原则高风扇与高风扇输出

有谁可以用一个例子向我解释一下这个问题?我自相矛盾了

  • 高扇入:一个给定的类,其设计方式使得大量其他类可以轻松使用它.
  • 高扇出:一堂课应该使用很多其他课程.

两者似乎都是自相矛盾的.可以用一个例子解释一下吗?可能在.NET框架中.

.net c# design-patterns

7
推荐指数
3
解决办法
8278
查看次数

一个方法应该属于谁?

我正在尝试设计一个简单的游戏--- Pong,Arkanoid ---严格使用"正确的OO",不管这意味着什么.

所以,通过将自己设计为死亡,我正试图达到一个下一次我会知道该做什么或不做什么的点......

谁应该处理,例如,结果?和记分?

我的第一个想法是给球做几个工作,但是开始以指数形式扩展到一个神对象:球会知道它在哪里,它撞到了谁,并向记分对象报告.

这对于糟糕的球来说太过分了.

language-agnostic oop

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

是否可以在Google Code上设置私有Mercurial存储库?

我喜欢Google Code是Mercurial托管的免费选项,但是在我设置的测试项目中,我找不到将存储库指定为私有的方法.

理想情况下,我想私下处理一个项目,直到它为世界准备好看,然后才开放给其他人.

有没有办法在Google Code上执行此操作?

mercurial google-code private repository

5
推荐指数
2
解决办法
3096
查看次数

int值和整数对象在哪里创建?

当我们初始化一些整数值时

int a = 10; 
Run Code Online (Sandbox Code Playgroud)

要么

Integer b = new Integer(20);
Integer b = 30;
Run Code Online (Sandbox Code Playgroud)

那些在内存中创建的对象在哪里?

有没有像Integer-Pool这样的概念,比如我们有String-Pool for String?

java

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