问题列表 - 第68021页

在Haskell中运算符&&严格吗?

例如,我有一个fnB :: a -> BoolfnA :: Bool返回之前没有意义的操作False.CI中可以将这两个操作组合在一个if块中:

if( fnA && fnB(a) ){ doSomething; }
Run Code Online (Sandbox Code Playgroud)

和C将保证fnBfnA返回false 之前不会执行.

但Haskell是惰性的,并且,通常也不能保证什么操作将首先执行,直到我们不使用seq,$!或别的东西,使我们的代码严格.一般来说,这就是我们需要快乐的事情.但是使用&&运算符,我希望fnBfnA返回结果之前不会对其进行求值.Haskell提供这样的保证&&吗?fnB即使fnA返回False,Haskell也会评估吗?

haskell logical-operators strictness

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

Visual Studio 11中的构建命令和属性的宏

首先是三部分问题:

  1. 构建时宏是否在Visual Studio 11中完全充实?
  2. 如何在IDE中编辑和定义它们?
  3. 在调试会话期间,如何让宏仍然具有其含义?

请注意,我指的是构建时宏$(ProjectDir),不用于记录一系列按键的IDE宏-他们把那些离开,但我生活中可以没有他们.我一直在通过Visual Studio 10中的属性页面定义自己的构建时宏.例如,我可以$(BoostDir)通过View> Property Manager> Microsoft.Cpp创建一个宏来定义在我的本地计算机上以x64版本命名的Boost的位置.x64.user:

VS10中的宏定义

我使用此功能是因为我可能(例如)Boost安装在不同计算机上的不同位置.这些属性是特定于机器的,不会签入源代码管理.然后我可以在项目设置中使用这些宏来检查源代码控制,只要我为该机器定义了宏,它就可以在我编译这个项目的每台机器上运行.

在此输入图像描述

在尝试在Visual Studio 11开发人员预览版中编译和运行我的VS10项目时,我遇到了关于这些宏的几个问题.

首先,在VS11中似乎没有用于定义这些用户定义的宏的接口.他们在VS10的位置,现在VS11中什么都没有:

在此输入图像描述

似乎这些宏确实存在于Compiler/IDE中的某个级别,因为我能够无错误地编译我的项目,如果这些宏不存在于某处,我将无法做到这一点.

其次,虽然宏似乎在构建过程中存在,但它们在调试会话期间似乎不存在.用于解析VS10中某些DLL存在的目录的宏现在无法在VS11中解析这些目录,并且我得到运行时错误:

在此输入图像描述

此DLL所在的目录在VS10和VS11中定义:

在此输入图像描述

...但是我的宏在调试会话期间似乎没有任何意义.

如何在VS11中获取VS10中依赖的所有与宏相关的功能?

c++ visual-studio-2012

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

JFrame和Nimbus外观和感觉

我在项目中使用Nimbus Look and Feel.但是,尽管每个GUI JComponent都具有Nimbus的外观,但JFrame始终具有Windows外观.

JFrame如何拥有Nimbus外观和感觉?

编辑:操作系统:Windows XP

java swing jframe look-and-feel nimbus

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

用php生成图片,背景总是颜色不对

功能是当用户上传一张图片时,程序会生成一个新的白色背景的方形图片,并将用户的图片放在这张图片的中心。

但问题是,我将背景设置为白色,它总是显示黑色。

代码是

$capture = imagecreatetruecolor($width, $height);
$rgb = explode(",", $this->background); 
$white = imagecolorallocate($capture, $rgb[0], $rgb[1], $rgb[2]); 
imagefill($capture, 0, 0, $white); 
Run Code Online (Sandbox Code Playgroud)

和控制颜色的代码是 protected $background = "255,255,255";

我一直在尝试更改$white = imagecolorallocate($capture, $rgb[0], $rgb[1], $rgb[2]);$white = imagecolorallocate($capture, 255, 255, 255);. 但是背景仍然显示为黑色。

感谢您的任何回答

php gd image

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

为什么我不能在lock语句的主体中使用'await'运算符?

锁定语句中不允许使用C#(.NET Async CTP)中的await关键字.

来自MSDN:

await表达式不能用于同步函数,查询表达式,异常处理语句的catch或finally块,lock语句块或不安全上下文中.

我认为编译器团队出于某种原因要么难以实施,要么难以实现.

我尝试使用using语句:

class Async
{
    public static async Task<IDisposable> Lock(object obj)
    {
        while (!Monitor.TryEnter(obj))
            await TaskEx.Yield();

        return new ExitDisposable(obj);
    }

    private class ExitDisposable : IDisposable
    {
        private readonly object obj;
        public ExitDisposable(object obj) { this.obj = obj; }
        public void Dispose() { Monitor.Exit(this.obj); }
    }
}

// example usage
using (await Async.Lock(padlock))
{
    await SomethingAsync();
}
Run Code Online (Sandbox Code Playgroud)

但是这不能按预期工作.在ExitDisposable.Dispose中对Monitor.Exit的调用似乎无限期地(大部分时间)阻塞,导致死锁,因为其他线程试图获取锁.我怀疑我的工作不可靠以及锁定语句中不允许等待语句的原因在某种程度上是相关的.

有谁知道为什么在锁定声明的正文中不允许等待?

.net c# async-await

318
推荐指数
6
解决办法
9万
查看次数

如何将控制台输出重定向到文件,STILL在控制台中获取它?

我想运行一个ANT脚本,提示用户输入,因此需要通过控制台进行交互.同时我想将控制台内容记录到日志文件中.我知道我可以使用ant >build.log 2<&1哪个将重定向到文件,但将控制台留空.

那么,怎么做呢?在windows和unix上需要.

unix windows shell batch-file

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

Lucene.net:查询并使用过滤器来限制结果

像往常一样,我转向Stackoverflow用户群的大量脑力,以帮助解决我正在与之斗争的Lucene.NET问题.首先,当谈到Lucene和Lucene.NET时,我是一个完整的菜鸟,通过在线使用分散的教程和代码片段,我为我的场景拼凑了以下解决方案.

情景

我有以下结构的索引:

---------------------------------------------------------
| id  |    date    | security |           text          |
---------------------------------------------------------
|  1  | 2011-01-01 | -1-12-4- | some analyzed text here |
---------------------------------------------------------
|  2  | 2011-01-01 |  -11-3-  | some analyzed text here |
---------------------------------------------------------
|  3  | 2011-01-01 |    -1-   | some analyzed text here |
---------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我需要能够查询文本字段,但将结果限制为具有特定roleId的用户.

为实现这一目标我想出的是(经过多次,多次访问谷歌之后)使用"安全字段"和Lucene过滤器来限制结果集,如下所述:

class SecurityFilter : Lucene.Net.Search.Filter
{
    public override System.Collections.BitArray Bits(Lucene.Net.Index.IndexReader indexReader)
    {
        BitArray bitarray = new BitArray(indexReader.MaxDoc());

        for (int i = 0; i < bitarray.Length; i++) …
Run Code Online (Sandbox Code Playgroud)

.net c# lucene.net full-text-search

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

有人可以解释这个片段(为什么这些大括号在这里)?

我为这个过于简单化的问题道歉,但我似乎无法在我正在阅读的书中弄清楚这个例子:

void f5()
{
    int x;
    {
        int y;
    }
}
Run Code Online (Sandbox Code Playgroud)

周围int y有什么括号?你能把牙箍放在任何你想要的地方吗?如果是这样,你何时以及为何会这样做,或者这只是书中的错误?

c++ function curly-braces code-snippets

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

结束会话的最佳方式是什么?

可能重复:
如何终止PHP会话?

当结束会话时,session_destroy()应该销毁会话和会话中注册的会话变量.但是我看到很多代码在销毁会话之前取消了所有已注册的会话变量.请问谁知道,最佳做法是什么?

php session

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

黄瓜 - 我应该在"最后"之前看到"第一" - Rails 3.1

[注意:使用Rails 3.1.]

我试图测试在我的页面上以正确的顺序显示多个模型,在我的情况下,通过desc date以最新的顶部显示.

我知道我可以执行以下操作来检查页面上是否存在某些内容:

And I should see "Some content on my page."
Run Code Online (Sandbox Code Playgroud)

但我想做的事情是:

And I should see "Most Recent" before "Really old"
Run Code Online (Sandbox Code Playgroud)

我将如何编写执行此操作的步骤?我相信"而且我应该看到"只扫描整个页面以查找指定的参数,只是不确定如何处理正确的顺序.

提前致谢!

testing integration-testing cucumber ruby-on-rails-3.1

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