问题列表 - 第29881页

功能编程和类型系统

我一直在学习各种函数式语言,包括Haskell,Scala和Clojure.Haskell有一个非常严格且定义良好的静态类型系统.Scala也是静态类型的.另一方面,Clojure是动态类型的.

所以我的问题是

  1. 类型系统在函数式语言中扮演什么角色?
  2. 语言是否有必要使用类型系统才能使其正常运行?
  3. 语言的"功能"级别与语言类型系统的类型有何关联?

type-systems programming-languages functional-programming clojure

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

.NET垃圾收集器是否执行代码的预测分析?

好吧,我意识到这个问题可能看起来很奇怪,但我只是注意到了一些令我困惑的事情......看看这段代码:

static void TestGC()
{
        object o1 = new Object();
        object o2 = new Object();
        WeakReference w1 = new WeakReference(o1);
        WeakReference w2 = new WeakReference(o2);

        GC.Collect();

        Console.WriteLine("o1 is alive: {0}", w1.IsAlive);
        Console.WriteLine("o2 is alive: {0}", w2.IsAlive);
}
Run Code Online (Sandbox Code Playgroud)

由于o1o2仍然在范围时,垃圾回收时,我本来期望的输出如下:

o1还活着:真正的
o2还活着:真的

但相反,这就是我得到的:

o1还活着:假
o2还活着:假

注意:仅当代码在发布模式下编译并在调试器外部运行时才会发生这种情况

我的猜测是GC检测到它o1并且o2在它们超出范围之前不会再次使用,并尽早收集它们.为了验证这个假设,我在TestGC方法的最后添加了以下行:

string s = o2.ToString();
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

o1还活着:假
o2还活着:是的

所以在这种情况下,o2不收集.

有人能说清楚发生了什么吗?这与JIT优化有关吗?到底发生了什么?

.net c# jit garbage-collection

31
推荐指数
2
解决办法
1231
查看次数

Xcode的Build和Archive无法正常工作

我当前遇到的问题是Build和Archive将构建我当前的目标,但在完成构建之后,会出现一个弹出窗口,其中包含以下消息:

"操作无法完成.没有这样的文件或目录"

我重新安装了Xcode(3.2.3与SDK 4.0),重新启动了我的机器,清理了缓存,清理了项目,手动删除了项目构建目录.没有任何效果.

我也检查了~/Library/MobileDevice/Archived Applications它是空的.

有任何想法吗?

ps这让我抓狂!

iphone xcode cocoa-touch xcode3.2

7
推荐指数
2
解决办法
9720
查看次数

如何在不阻止 jQuery 中默认值的情况下阻止父级上的委托处理程序?

有什么方法可以防止<a>在其父级上触发委托单击处理程序的单击,同时允许<a>发生 的默认行为(导航到href)。

这是一个例子,说明了我的要求。

<div class="top">
    <div class="middle">
        <a href="google.com" class="link">link</a>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

还有我的 JavaScript:

$(".top").delegate(".middle", "click", function(event) {
   alert("failure");
});

$(".top").delegate(".link", "click", function(event) {
   // ???
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望在单击链接时导航到 google.com,但alert("failure")在退出时不能看到 。

该解决方案有一些限制:

  1. 所有事件处理程序都必须委托给$(".top"),因为我的页面中可能有数千个这样的事件处理程序。
  2. 导航必须使用浏览器默认行为来完成,而不是window.location = $(this).attr("href")或类似

使用普通的事件绑定,我可以e.stopPropagation()在 的单击处理程序中执行一个操作<a>,但由于委托的性质,这将不起作用。jQuery 提供了另一种名为 的方法,.stopImmediatePropagation()该方法描述了我想要的内容(防止当前元素上的其他处理程序,在本例中为保存委托处理程序的元素),但在这种情况下实际上并没有完成它。这可能是一个错误.delegate(),我不确定。

false从的单击处理程序返回<a>将阻止其他处理程序运行,但也会执行.preventDefault(),因此浏览器将不会导航。基本上,我想知道return false;e.stopImmediatePropagation(); e.preventDefault();不是什么。根据文档,它们应该是等效的。

对于上述代码的现场演示,这里有一个 JSFiddle:https ://jsfiddle.net/CHn8x/

javascript jquery events delegation

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

Java Swing程序结构

我正在寻找关于使用Java Swing进行结构化的应用程序的最佳实践的一些指导.我通常是一个webapp的人,并尝试遵循MVC.MVC是Swing应用的典型代表吗?如果是这样,怎么样?

java model-view-controller swing

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

来自不透明度的jquery fadeIn():0.1 - 可能吗?

我正在寻找fadeIn()一个开始于on opacity: 0.1或(filter: alpha(opacity = 10)在ie)的div .

我知道我可以做.animate({css....一个,if(supports opacity)但我正在寻找一个快速简便的跨浏览器解决方案,我想jquery已经有一个?

jquery

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

找到Git分支的父分支

假设我有以下本地存储库,其中包含如下提交树:

master --> a
            \
             \
      develop c --> d
               \
                \
         feature f --> g --> h
Run Code Online (Sandbox Code Playgroud)

master是我的这是最新的稳定版本代码,develop是我的这个'下一个'版本代码,feature一个正在准备的新功能develop.

我希望能够使用钩子在我的远程仓库上做什么,feature除非提交fdevelopHEAD 的直接后代,否则推送被拒绝.即提交树看起来像这样,因为功能已经git rebase打开d.

master --> a
            \
             \
      develop c --> d
                     \
                      \
               feature f --> g --> h
Run Code Online (Sandbox Code Playgroud)

那么有可能:

  • 确定父分支feature
  • 识别父分支中的提交,它f是后代的?

从那里我将检查父分支的HEAD是什么,并查看f前任是否与父分支HEAD匹配,以确定该特征是否需要重新定位.

git branch

387
推荐指数
14
解决办法
33万
查看次数

lambda函数的类型是什么?

在C++ 0x中,我想知道lambda函数的类型是什么.特别:

#include<iostream>

type1 foo(int x){
 return [x](int y)->int{return x * y;};
}

int main(){

 std::cout<<foo(3)(4);//would output 12

 type2 bar = foo(5);
 std::cout<<bar(6);//would output 30
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

我需要更换type1/type2才能使上述功能正常工作?希望你能看到我想要完成的事情,所以即使直接替换type1和type2是不可能的,也许你可以引导我朝着正确的方向前进.

换一种说法:

  • 如何获取函数以返回匿名函数?
  • 如何为变量分配匿名函数?

谢谢!

编辑:我正在使用visual studio 2010进行编译

lambda closures return-type anonymous-function c++11

8
推荐指数
2
解决办法
1201
查看次数

在Visual Studio IDE中使用XSD进行XML验证

我知道我以前做过这个,但今天不行,也找不到解释怎么做的地方.这可能是我的睡眠不足,但我怀疑是小鬼.

我有一个XML文档和一个充满XSD的目录来定义它.如何设置Visual IDE以通知我验证失败,然后在给定的上下文中提供有效标签和属性的智能感知列表?

我尝试过的:

  • 我已经使用XML文档将XSD添加到项目中.
  • 我已将XSD添加到XML Schema列表中(在XML/Schemas ...菜单项下).
  • 我甚至将schemaLocation和noNamespaceSchemaLocation属性包含在XML文档中.

Visual Studio仍然没有放弃任何有用的调试或编辑信息.我试过2010年和2008年(我在2008年之前就已经做过了)

更新:我有另一个开发人员尝试这个,它也失败了.他知道他已经使用其他XML文档完成了它并使其工作.然后我下载了Oxygen XML编辑器,它在相同的XML和XSD文件上运行良好,所以文件看起来很好(或者Oxygen更宽容/更灵活......)

xml intellisense xsd visual-studio xsd-validation

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

SolutionDir在构建后的xcopy事件中设置为*Undefined*

我有一个项目,有一个后期构建事件,可以将DLL复制到某个目录:

xcopy "$(TargetDir)$(TargetName).dll" "$(SolutionDir)..\UdpLocationService\bin\Plugins\" /d /y
xcopy "$(TargetDir)$(TargetName).pdb" "$(SolutionDir)..\UdpLocationService\bin\Plugins\" /d /y
Run Code Online (Sandbox Code Playgroud)

但是,我将CruiseControl.NET设置为构建服务器,并且由于此xcopy构建后事件,MSBuild无法构建该项目:

MSB3073: The command "xcopy "C:\Build\Services\Windows\VehicleServer\Plugins\Payload\bin\Debug\Payload.dll" "*Undefined*..\UdpLocationService\bin\Plugins\" /d /y xcopy "C:\Build\Services\Windows\VehicleServer\Plugins\Payload\bin\Debug\Payload.pdb" "*Undefined*..\UdpLocationService\bin\Plugins\" /d /y" exited with code 4. in Microsoft.Common.targets(3397, 13)
Run Code Online (Sandbox Code Playgroud)

有任何建议来解决这个问题吗?

msbuild xcopy

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