我在Clojure中实现了Eratosthenes的筛子:
(defn sieve [n]
(loop [last-tried 2 sift (range 2 (inc n))]
(if
(or (nil? last-tried) (> last-tried n))
sift
(let [filtered (filter #(or (= % last-tried) (< 0 (rem % last-tried))) sift)]
(let [next-to-try (first (filter #(> % last-tried) filtered))]
(recur next-to-try filtered))))))
Run Code Online (Sandbox Code Playgroud)
对于较大的n
(如20000),它以堆栈溢出结束.为什么尾部呼叫消除不在这里工作?怎么解决?
algorithm primes functional-programming clojure sieve-of-eratosthenes
我试图保存数据并与CoreData和多线程的iPhone应用程序合并.但合并后我无法在主线程中获取托管对象.
我编写的代码如下:
[managedObjectContext performSelectorOnMainThread:@selector(mergeChangesFromContextDidSaveNotification:)
withObject:notification
waitUntilDone:YES];
[self performSelectorOnMainThread:@selector(didMerged:) withObject:objectIds waitUntilDone:YES];
Run Code Online (Sandbox Code Playgroud)
所以我试图传递objectIds来获取主线程中的NSManagedObject实例,这些实例是在另一个线程中生成的.起初我尝试了"objectWithId"方法,但它生成了故障对象.然后我尝试了"existingObjectWithID"方法,但它部分生成了对象,其他的则是nil,后面跟着Error:
[Error] Error Domain=NSCocoaErrorDomain Code=133000 "Operation could not be completed. (Cocoa error 133000.)"
Run Code Online (Sandbox Code Playgroud)
怎么了?有没有办法在另一个线程中合并后如何通过objectIds检索所有对象?
谢谢.
我不明白如何定义(CGRect)rect
以控制弹出窗口的位置和箭头的位置.
例如,我有一个1004 x 768视图,如何将弹出框放在屏幕的右下方,并将箭头指向700(x)1000(y)?Thakns!
让我们假设有人必须为问题编写解决方案,我必须通过一些测试来测试他的解决方案.是否有可能(可能有反思或某些东西)他的程序通过我所有的测试,但与问题的真正解决方案没有任何共同之处?
在多线程WPF应用程序中,无法ObservableCollection
从WPF窗口线程以外的线程更新.
我知道有解决方法,所以我的问题不是如何避免" 这种类型的CollectionView不支持从与Dispatcher线程不同的线程更改其SourceCollection "异常.
我的问题是,为什么会有这样的例外?为什么不允许从任何线程进行集合更新?
就个人而言,当ObservableCollection
从其他线程更改时,我认为没有任何理由阻止UI更新.如果两个线程(包括并行线程)访问同一个对象,一个通过事件监听对象属性的更改,另一个执行更改,它将始终有效,至少在正确使用锁定的情况下.那么,原因是什么?
我正在将一些代码移植到Windows(叹息)并需要使用fesetround.MSVC不支持C99,因此对于x86,我从MinGW复制了一个实现,并将其破解为:
//__asm__ volatile ("fnstcw %0;": "=m" (_cw));
__asm { fnstcw _cw }
_cw &= ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO);
_cw |= mode;
//__asm__ volatile ("fldcw %0;" : : "m" (_cw));
__asm { fldcw _cw }
if (has_sse) {
unsigned int _mxcsr;
//__asm__ volatile ("stmxcsr %0" : "=m" (_mxcsr));
__asm { stmxcsr _mxcsr }
_mxcsr &= ~ 0x6000;
_mxcsr |= (mode << __MXCSR_ROUND_FLAG_SHIFT);
//__asm__ volatile ("ldmxcsr %0" : : "m" (_mxcsr));
__asm { ldmxcsr _mxcsr }
}
Run Code Online (Sandbox Code Playgroud)
评论的行是gcc的原件; msvc取消注释.这似乎有效. …
有没有办法将Subversion控件正确地集成到VS2008中?我目前正在使用TortoiseSVN shell扩展,但我一直忘记检查新文件,并且很容易陷入困惑.
在另一个项目中,我使用带有SourceSafe的VS2008,并且通过简单地以正常方式使用VS来实现大多数自动化或控制的东西真的很不错.
我正在Glassfish v3上开发一个JSF 2.0应用程序,我正在尝试处理ViewExpiredException.但无论我做什么,我总是得到一个Glassfish错误报告,而不是我自己的错误页面.
为了模拟VEE的发生,我将以下函数插入到我的支持bean中,它会激活VEE.我通过commandLink从我的JSF页面触发此函数.代码:
@Named
public class PersonHome {
(...)
public void throwVEE() {
throw new ViewExpiredException();
}
}
Run Code Online (Sandbox Code Playgroud)
起初我只是通过向我的web.xml添加错误页面来尝试它:
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/error.xhtml</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我没有被重定向到错误,但我显示了Glassfish错误,它显示了HTTP状态500页面,其中包含以下内容:
description:The server encountered an internal error () that prevented it from fulfilling this request.
exception: javax.servlet.ServletException: javax.faces.application.ViewExpiredException
root cause: javax.faces.el.EvaluationException:javax.faces.application.ViewExpiredException
root cause:javax.faces.application.ViewExpiredException
Run Code Online (Sandbox Code Playgroud)
我尝试的下一件事是编写ExceptionHandlerFactory和一个CustomExceptionHandler,如JavaServerFaces 2.0 - 完整参考中所述.所以我将以下标记插入faces-config.xml:
<factory>
<exception-handler-factory>
exceptions.ExceptionHandlerFactory
</exception-handler-factory>
</factory>
Run Code Online (Sandbox Code Playgroud)
并添加了这些类:工厂:
package exceptions;
import javax.faces.context.ExceptionHandler;
public class ExceptionHandlerFactory extends javax.faces.context.ExceptionHandlerFactory {
private javax.faces.context.ExceptionHandlerFactory parent;
public ExceptionHandlerFactory(javax.faces.context.ExceptionHandlerFactory parent) {
this.parent = parent;
} …
Run Code Online (Sandbox Code Playgroud) 在一个表单中,我想输入:文本填充剩余空格后,表格的标签左右对齐.
标签有字符数,因此我无法在标签上设置固定宽度.
代码示例:
<fieldset>
<legend>User Info</legend>
<p><label>First Name :</label><input type="text"...></p>
<p><label>Last Name : </label><input type="text"...></p>
<p><label>Completed Email Address :</label><input type="text"...></p>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
如何设置输入样式以填充文本后的剩余空间.
谢谢.