它似乎一直都在发生.例如:
(apply * (range 1 101))
Run Code Online (Sandbox Code Playgroud)
给了我错误
ArithmeticException integer overflow clojure.lang.Numbers.throwIntOverflow (Numbers.java:1374)
Run Code Online (Sandbox Code Playgroud)
而在Ruby 1.9.2中(概念上)等效代码,
(1..100).reduce(:*)
Run Code Online (Sandbox Code Playgroud)
产生预期的结果
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
Run Code Online (Sandbox Code Playgroud)
显然,这两种语言在引擎盖下是完全不同的,但似乎它们都应该能够毫无问题地处理这种计算.我在这里做错了吗?或者我的理解不正确?
我有一个带有TableViewController的基于Storyboard的应用程序.在特定单元格的内容视图中,我有一个文本字段和一个标签.我偶然添加了标签,现在我无法删除它.点击删除键不起作用,"删除"菜单项显示为灰色.
真正糟糕的是,Xcode抱怨这个标签.但是,当我尝试修复它的约束时,我的项目无法编译.我真的只想删除标签,因为我不需要它.
fwiw这是它的样子:

我在Xcode 6.2中,我正在使用Swift进行开发.
我是Clojure的新手,我认为到目前为止我编写代码的方法与"Clojure方法"不符.至少,我一直在编写使用大值导致StackOverflow错误的函数.我已经学会了使用recur,这是向前迈出的一大步.但是,如何使像下面这样的函数为2500000这样的值工作?
(defn fib [i]
(if (>= 2 i)
1
(+ (fib (dec i))
(fib (- i 2)))))
Run Code Online (Sandbox Code Playgroud)
在我看来,这个函数是Fibonacci生成器的"普通"实现.我已经看到其他实现更加优化,但在他们的工作方面不那么明显.即,当你阅读函数定义时,你不会去"哦,斐波那契".
任何指针将不胜感激!
这是如何在Swift中检查launchOptions的后续问题? - 我的应用程序成功启动而没有崩溃,但我似乎无法正确检测应用程序何时从通知启动到正常启动.
我正在创建我的UILocalNotification:
// set up a frequently recurring notification here just for testing...
var fast = UILocalNotification()
fast.fireDate = NSDate(timeIntervalSinceNow: 15)
fast.alertBody = "Alert Message"
fast.timeZone = NSTimeZone.localTimeZone()
fast.repeatInterval = NSCalendarUnit.CalendarUnitMinute
fast.userInfo = ["Important":"Data"]
UIApplication.sharedApplication().scheduleLocalNotification(fast)
Run Code Online (Sandbox Code Playgroud)
这是我从UILocalNotification启动应用程序时尝试处理的代码.
func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
if var launch = launchOptions {
if var key = launch.objectForKey(UIApplicationLaunchOptionsLocalNotificationKey) {
// I never seem to reach this point...
}
}
return true
}
Run Code Online (Sandbox Code Playgroud)
如果我的应用程序是后台运行的,我点击警告框,我想要触发的操作正确执行,所以我知道我至少可以使一条路径正常工作.这里的问题是完全从通知启动应用程序.
我试图race_condition_ttl在使用Rails.cache.fetch.
我有一个如下所示的控制器操作:
def foo
@foo = Rails.cache.fetch("foo-testing", expires_in: 30.seconds, race_condition_ttl: 60.seconds) do
Time.now.to_s
end
@foo # this gets used in a view down the line...
end
Run Code Online (Sandbox Code Playgroud)
根据我在 Rails 文档中阅读的内容,该值应在 30 秒后过期,但允许再提供 60 秒的陈旧值。但是,我无法弄清楚如何重现将显示此行为有效的条件。这是我尝试测试它的方式。
100.times.map do
t = Thread.new { RestClient.get("http://myenvironment/foo") }
t
end.map {|t| t.join.value }.uniq
Run Code Online (Sandbox Code Playgroud)
我的 Rails 应用程序在标准 nginx/unicorn 设置后面的 VM 上运行。我正在尝试同时生成 100 个线程来模拟“狗堆效应”。但是,当我运行我的测试代码时,所有线程都返回相同的值。我希望看到的是,一个线程获得了新值,而至少另一个线程获得了一些陈旧的内容。
欢迎任何指点!非常感谢。
我喜欢使用C-j到eval-last-sexp但paredit模式(我喜欢否则)覆盖这对paredit-newline.查看paredit-mode文档,我没有看到任何类似于paredit-mode-hook我可以add-hook调用的地方local-set-key或类似的功能.
有人有建议吗?
更新
在尝试了以下两个答案并且没有取得多大成功后,我认为这个问题可能与paredit在几个不同的环境中加载的事实有关?也就是说,我打开Common Lisp,Clojure和Emacs Lisp文件,所有这些文件都可以使用paredit.可悲的是,各种形式的eval-last-sexp每种模式都有不同的名称,因此我无法为所有内容定义一次密钥.相反,我需要根据我所处的主要模式绑定密钥.希望这增加了另一个有用的数据点.
我在这里很难过 - 我正试图检测我的应用程序是否从LocalNotification启动.但是我所有的代码都被塞满了.
func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
var firstWay = launchOptions.objectForKey(UIApplicationLaunchOptionsLocalNotificationKey)
var secondWay = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]
return true
}
Run Code Online (Sandbox Code Playgroud)
这两个都失败了
"unexpectedly found nil while unwrapping an Optional value"
Run Code Online (Sandbox Code Playgroud)
我确信我在做一些非常基本的错误.有什么指针吗?
我试图理解为什么我的子视图没有接收到触摸.
下面是一个显示我遇到的行为的gif:当我点击右边的青色按钮时,没有任何反应(左边视图的背景应该改变颜色).当我单击左侧的绿色按钮时,它会正确接收触摸事件,附加的TouchDown操作将触发,并且视图的颜色会发生变化.
这个"应用程序"显然不是一个真正的应用程序,只是为了说明我遇到的行为.我真正想要学习如何实现你在许多应用程序中看到的常见"滑出菜单"模式; 通常带有随附的汉堡包按钮.
在许多这些应用程序中,看起来主要的应用程序内容被移到一边显示菜单,"隐藏"在应用程序下面,就像它一样.我试图在这里复制相同的行为.
我在这里粘贴我的ViewController代码.您在下面看到的代码就是我拥有的一切.
import UIKit
class ViewController: UIViewController {
var originalX : CGFloat!
var originalY : CGFloat!
var containerView = UIView()
var button : UIButton!
var button2 : UIButton!
override func viewDidLoad() {
super.viewDidLoad()
originalX = self.view.frame.origin.x
originalY = self.view.frame.origin.y
button = UIButton(frame: CGRectMake(200, 25, 100, 100))
button.backgroundColor = UIColor.greenColor()
button.addTarget(self, action: "foo", forControlEvents: .TouchDown)
view.addSubview(button)
containerView.frame = CGRectMake(self.view.frame.width, originalY, 150, self.view.frame.height)
containerView.userInteractionEnabled = true
containerView.backgroundColor = UIColor.magentaColor()
containerView.clipsToBounds = false
button2 = UIButton(frame: CGRectMake(25, 25, 100, …Run Code Online (Sandbox Code Playgroud) 我有一长串文件和文件扩展名,我希望Emacs在ruby模式下自动打开.从使用谷歌,最基本的解决方案是:
(setq auto-mode-alist (cons '("\.rake$" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\.thor$" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("Gemfile$" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("Rakefile$" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("Crushfile$" . ruby-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("Capfile$" . ruby-mode) auto-mode-alist))
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎是重复的.有没有办法我可以定义一次对的列表,并将其循环或直接收集到auto-mode-alist?我试过了
(cons '(("\\.rake" . ruby-mode)
("\\.thor" . ruby-mode)) auto-mode-alist)
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.有什么建议?
假设我有一个缺点列表,如下所示:
(setq foo '(("a" . 1) ("b" . 2) ("c" . 3)))
Run Code Online (Sandbox Code Playgroud)
我想通过"密钥名称"检索特定缺点单元格的值.有没有让我这样做的功能?
例如
(get-by-key "a" foo) ;; => 1
Run Code Online (Sandbox Code Playgroud)
或类似的东西.提前致谢!
我是学习iOS和Swift的新手,所以这里可能有一些非常基本的东西,我不明白.我正在使用代理库在Swift中发送HTTP请求.现在,我正忙着创建请求并解析JSON响应.
我有一个非常简单的UI,带有一个按钮UILabel,我想用一些JSON的结果更新.
这是我的代码:
func updateWithJson() -> Void {
let req = Agent.get("http://xkcd.com/info.0.json")
req.end({ (response: NSHTTPURLResponse!, data: Agent.Data!, error: NSError!) -> Void in
let json = data! as Dictionary<NSString, NSString>
// this takes almost 30 seconds to propagate to the UI...
self.updateMe.text = json["safe_title"]!
})
}
Run Code Online (Sandbox Code Playgroud)
我不理解的部分self.updateMe.text = json["safe_title"]!是刚刚更新UILabel被调用文本的语句updateMe.这需要几乎整整30秒才能在UI中反映出来.
我知道HTTP请求本身非常快 - 如果我卷曲该URL它会立即回来.它似乎也是Agent对象正在建立连接并快速返回响应.
我错过了非常基本的东西吗?我应该以不同的方式更新UI吗?所有指针都很赞赏!
更新
通过另一个SO帖子,我的理解是内部的块req.end是后台线程,我需要在主线程上进行UI更新.我更新了我的功能,看起来像这样,我得到了理想的结果.但是,现在我想知道这样做有什么不对吗?
func updateWithJson() -> Void {
let req = Agent.get("http://xkcd.com/info.0.json")
req.end({ (response: NSHTTPURLResponse!, …Run Code Online (Sandbox Code Playgroud)