小编Ale*_*son的帖子

什么是自举?

我一直看到在应用程序开发的讨论中提到的"bootstrapping".它似乎既广泛又重要,但我还没有看到一个关于实际引导的错误解释; 相反,似乎每个人都应该知道这意味着什么.不过,我没有.我可以说,它与启动时应用程序所需的初始化任务有关,但我可能完全错了.任何人都可以帮我理解这个想法吗?

bootstrapping

618
推荐指数
9
解决办法
26万
查看次数

SICP练习1.6的解释是什么?

我刚刚开始通过SICP(我自己;这不适合一个班级),我已经在练习1.6中苦苦挣扎了几天,我似乎无法弄明白.这是Alyssa重新定义if的方式cond,如下所示:

(define (new-if predicate then-clause else-clause)
    (cond (predicate then-clause)
          (else else-clause))
Run Code Online (Sandbox Code Playgroud)

她在一些简单的情况下成功测试它,然后用它来重新编写平方根程序(它工作得很好if):

(define (sqrt-iter guess x)
    (new-if (good-enough? guess x)
            guess
            (sqrt-iter (improve guess x)
                       x)))
Run Code Online (Sandbox Code Playgroud)

然后问题是:"当Alyssa试图用它来计算平方根时会发生什么?解释." [如果有必要,我很高兴能重现其他程序(good-enough?,improve,等),只是让我知道.]

现在,我知道会发生什么:它永远不会返回一个值,这意味着程序无限地递归.我无法解释为什么会这样.无论之间存在什么微妙的差异,if并且new-if正在逃避我.任何和所有帮助非常感谢.

recursion sicp

58
推荐指数
5
解决办法
7946
查看次数

Swift:对UIViewController的根视图进行子类化

tl; dr:我怎么能告诉Swift我的子类属于覆盖MyViewControllerview属性UIView


我想做什么

我非常喜欢UIViewUIViewController视图提供子类.例如:

// MyView --------------------------------------------------------

@interface MyView: UIView
@property (nonatomic, strong) UITableView *tableView;    
@end

@implementation MyView

- (instancetype)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        _tableView = [[UITableView alloc] initWithFrame:frame];
    }
    return self;
}

@end

// MyViewController ----------------------------------------------

@interface MyViewController: UIViewController <UITableViewDataSource>
@property (nonatomic, retain) MyView *view;
@end

@implementation MyViewController

- (void)loadView {
    self.view = [[MyView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
}

- (void)viewDidLoad {
    [super viewDidLoad];

    self.view.tableView.dataSource = …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller uiview ios swift

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

为什么Netflix奖如此具有挑战性?

刚刚阅读了Wired最近的文章,我很好奇:Netflix奖是如此具有挑战性的是什么?我的意思是尽可能最真诚,我只是对比赛所带来的困难感到好奇.大多数推荐引擎一般难以改善吗?如果是这样,为什么呢?或者,Netflix是否异常难以改进,如果是这样的话,那么Netflix的特殊之处在于它比亚马逊更具挑战性?

recommendation-engine netflix

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

键值编码有什么意义?

自Objective-C 2.0以来,我们已经拥有了@properties自动生成的访问器方法.那么今天,键值编码有什么意义呢?在什么情况下写作更可取

[myObject setValue:foo forKey:@"bar"];
Run Code Online (Sandbox Code Playgroud)

而不是写作

[myObject setBar:foo];
Run Code Online (Sandbox Code Playgroud)

甚至

myObject.bar = foo;
Run Code Online (Sandbox Code Playgroud)

我一直看到使用KVC的文章和文档,但总是以一种似乎只是简单地使用属性的方式会更好.那我为什么要用KVC呢?感谢您的所有见解.

objective-c

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

在ARC下将代表设置为nil?

我正在使用ARC编写iOS应用程序,并以iOS 5+为目标.

假设我编写了一个具有委托属性的自定义视图对象.在声明委托属性时,我将它作为一个弱引用来避免保留循环,这样当实际的委托对象(控制器)被销毁时,我的自定义视图也将被销毁,如下所示:

@interface MyCustomView : UIView

@property (nonatomic, weak) id<MyCustomViewDelegate> delegate;

@end
Run Code Online (Sandbox Code Playgroud)

一切都很好.

好的,现在我正在编写控制器对象,它引用了两个视图对象:我的自定义视图和Apple提供的UIKit视图,两者都声明了委托属性,控制器是两个视图的委托.也许它看起来像这样:

@interface MyViewController : UIViewController <MyCustomViewDelegate, UITableViewDataSource, UITableViewDelegate>

@property (nonatomic, strong) MyCustomView *customView;
@property (nonatomic, strong) UITableView *tableView;

@end

@implementation MyViewController

- (void)viewDidLoad
{
    self.customView.delegate = self;
    self.tableView.dataSource = self;
    self.tableView.delegate = self;
}

@end
Run Code Online (Sandbox Code Playgroud)

我的问题是:我是否需要覆盖dealloc将其中一个或两个委托设置为nil?

我的意思是,据我所知,UIKit视图的委托属性(在本例中tableView)实际上并未声明为弱引用,而是一个__unsafe_unretained引用,用于向后兼容非ARC版本的iOS.所以也许我需要写

- (void)dealloc
{
    _tableView.dataSource = nil;
    _tableView.delegate = nil;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我必须覆盖dealloc,我仍然不必设置_customView.delegate = nil,对吧?因为(由我)声明它是一个弱引用,所以它应该在销毁时自动设置为nil MyViewController.

但另一方面,我不是针对iOS的非ARC版本,我也不打算这样做.所以也许我根本不需要覆盖dealloc?

delegates ios automatic-ref-counting

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

如何优化这个Python代码(来自ThinkPython,练习10.10)

我正在研究Allen Downey的" 如何像计算机科学家一样思考",并且我已经编写了我认为是练习10.10的功能正确的解决方案.但是运行起来只需要10个多小时(!),所以我想知道我是否缺少一些非常明显且有用的优化.

这是练习:

"两个单词'互锁',如果从每个单词中取代交替的字母形成一个新单词.例如,'shoe'和'cold'互锁形成'schooled'.编写一个程序,找到所有互锁的单词对.提示:Don'列举所有对!"

(对于这些单词列表问题,Downey提供了一个包含113809个单词的文件.我们可以假设这些单词在列表中,列表中每个项目一个单词.)

这是我的解决方案:

from bisect import bisect_left

def index(lst, target):
    """If target is in list, returns the index of target; otherwise returns None"""
    i = bisect_left(lst, target)
    if i != len(lst) and lst[i] == target:
        return i
    else:
        return None

def interlock(str1, str2):
    "Takes two strings of equal length and 'interlocks' them."
    if len(str1) == len(str2):
        lst1 = list(str1)
        lst2 = list(str2)
        result = []
        for i in range(len(lst1)):
            result.append(lst1[i])
            result.append(lst2[i])
        return ''.join(result)
    else:
        return …
Run Code Online (Sandbox Code Playgroud)

python

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

基于PHP的LaTeX解析器 - 从哪里开始?

该项目:我想在PHP中构建一个LaTeX-to-MathML转换器.为什么?因为我是一名数学家,我想在Drupal网站上发布数学.它不必翻译所有的LaTeX,因为基本的文档级资源由CMS很好地处理,并且不会在LaTeX中开始编写; 它只需将用LaTeX编写的数学翻译成用MathML编写的数学.虽然我觉得我已经完成了尽职调查,但这似乎并不存在.也许我错了 - 如果你知道一些能达到这个目的的东西,请务必告诉我,并提前感谢你.但假设它不存在,我想我必须自己去写.

但事情就是这样:我从未做过任何雄心勃勃的事情.我真的不知道从哪里开始.我已经使用PHP多年了,但只是做标准的"用PHP和MySQL构建CMS"类型的东西.我从来没有尝试过从一种语言到另一种语言的翻译看似复杂的东西.

我只是愚蠢地考虑用正则表达式来做 - 毕竟,LaTeX是一种更正式的语言,并且它不允许几乎所有类型的病态边缘情况,例如HTML.但另一方面,我很聪明地意识到这可能是一个可怕的想法:现在我有两个问题,我肯定不想像这个人那样结束.

那么,如果这不是要走的路(对吗?),那是什么?我该如何开始考虑这个问题?难道我基本上写在PHP一个LaTeX编译器,如果是这样,我该怎么需要知道做(比如,我应该只是去阅读紫金神龙书第一?)?

我对这个项目的前景感到非常兴奋和非常恐惧,但是,嘿,这就是我们都学习成为程序员的方式,对吧?如果我们需要的东西不存在,我们去构建它,必要性是......的主人.非常感谢大家提前为您提供的任何和所有指导.

php parsing latex

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

在哪里可以了解如何将html5用于客户端数据库应用程序?

我想开始使用html5的客户端数据库功能,但我不知道在哪里可以找到一个好的介绍/教程/操作方法.我多年来一直在编码(x)html,所以我对"这里的<head>元素"类型的介绍并不感兴趣; 我想了解一般html5中的新功能,特别是客户端数据库.有什么建议?

html5

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

如何在 DrScheme 中包含文件?

我正在使用 DrScheme 来完成 SICP,并且我注意到某些过程(例如square)被反复使用。我想将它们放在一个单独的文件中,以便我可以将它们包含在其他程序中,而不必每次都重写它们,但我似乎不知道如何做到这一点。

我试过了:

(load filename)
(load (filename))
(load ~/path-to-directory/filename)
(require filename)
(require ~/path-to-directory/filename)
(require path-from-root/filename)
Run Code Online (Sandbox Code Playgroud)

这些都不起作用。显然我正在抓住救命稻草——非常感谢任何帮助。

sicp racket

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