我经常需要匹配应该具有相同构造函数的元组元组.最后,笼子_,_总是炙手可热.这当然是脆弱的,添加到该类型的任何其他构造函数将完全编译.我目前的想法是连接第一个但不是第二个参数的匹配.但是,还有其他选择吗?
例如,
type data = | States of int array
| Chars of (char list) array
let median a b = match a,b with
| States xs, States ys ->
assert( (Array.length xs) = (Array.length ys) );
States (Array.init (Array.length xs) (fun i -> xs.(i) lor ys.(i)))
| Chars xs, Chars ys ->
assert( (Array.length xs) = (Array.length ys) );
let union c1 c2 = (List.filter (fun x -> not (List.mem x c2)) c1) @ c2 in
Chars …Run Code Online (Sandbox Code Playgroud) 我是一位经验丰富的C++/.NET/Java Windows/Web程序员,正在尝试学习(Common)Lisp.我正在阅读Practical Common Lisp并使用SLIME.
我很容易获得Lisp语言,但是我很难理解开发的机制.我的一个问题是处理Emacs.我没有经验,发现它一般令人困惑,很难找到/弄清楚命令.
具体问题:
(defun ...).直到我尝试使用它,我发现它无效.有没有办法尽快得到错误(即编译代码)?任何提示将非常感谢!
这是一个相当简单的问题,但谷歌搜索似乎没有答案,所以.
我想知道的是,如果我有两个能够运行cuda的gpu卡(相同),我的内核可以跨越这些卡吗?或者是一张卡还是另一张卡?即,cuda提供了整套可用的gpu核心,或者只是运行在卡上的那些核心.
如果是这样,为了实现它,我需要知道什么特别的事情吗?除了值得了解的cuda sdk之外还有什么例子吗?
目标语言当然是C/C++.
提前致谢.
我正在使用Flexmock模拟框架用Rspec2编写测试.我希望我的一种方法可以缓存结果,并希望用我的模拟验证这一点.
describe SomeClass do
before do
@mock = flexmock()
end
after do
@mock.flexmock_verify()
end
it "method caches results"
c = SomeClass.new(@mock)
c.method
@mock.should_receive(:expensive_method).never
c.method.should == ['A']
end
end
Run Code Online (Sandbox Code Playgroud)
如果我想确保:expensive_method永远不会被调用,这种方法很有效.但是,我希望我的类能够在:method不调用传入(模拟)类的情况下执行任何操作.有没有办法表达这个?
背景:在我的例子中,注入的类执行昂贵的操作,因此应该为相同的查询缓存结果.
更新
感谢到目前为止的建议,也许我只是假设错误或者我想要的甚至没有意义.我实现缓存的方法是将一个类变量放入SomeClass并添加到:method:
def SomeClass
@@cache_map = {}
def method
# extract key
return @@cache_map[key] if @@cache_map.has_key?(key)
# call :expensive_method to get result
@@cache_map[key] = result
return result
end
end
Run Code Online (Sandbox Code Playgroud)
现在,为了测试正确的缓存,我必须:extensive_method至少调用一次来加载缓存.我喜欢David Chelimsky的解决方案,但它没有回答我的原始意图,即:测试在第一次调用SomeClass.method注入类之后再也没有调用(既不是:expensive_method也不是其他).
我花了很多时间搞清楚如何配置我的WCF服务,以便它们适用于生产环境中的https.
基本上,我需要这样做:
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
<services>
<service name="MyNamespace.MyService" behaviorConfiguration="MyServiceBehavior">
<endpoint address="" bindingNamespace="https://secure.mydomain.com" binding="basicHttpBinding" bindingConfiguration="HttpsBinding" contract="MyNamespace.IMyService"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="HttpsBinding">
<security mode="Transport">
<transport clientCredentialType="None"></transport>
</security>
</binding>
</basicHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
将bindingNamespace属性添加到端点是使其工作的最终因素.
但是这个配置在我在常规http下工作的本地开发环境中不起作用.所以我的配置是:
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
<services>
<service name="MyNamespace.MyService" behaviorConfiguration="MyServiceBehavior">
<endpoint address="" binding="basicHttpBinding" contract="MyNamespace.IMyService"/>
</service>
</services>
Run Code Online (Sandbox Code Playgroud)
这里的区别是我将httpsGetEnabled属性设置为false,并删除了bindingConfiguration和bindingNamespace.
问题是: …
有没有办法重新加载表视图的节头/页脚而不调用
[tableView reloadData];?
实际上,我想在其章节页脚的表格视图的部分中显示单元格的数量.表视图是可编辑的,我使用删除或插入行
– insertRowsAtIndexPaths:withRowAnimation:
– deleteRowsAtIndexPaths:withRowAnimation:
Run Code Online (Sandbox Code Playgroud)
似乎这些方法不会更新部分页脚.奇怪的是,当我调用这些方法时,表视图数据源方法
- (NSString *)tableView:(UITableView *)table titleForFooterInSection:(NSInteger)section
Run Code Online (Sandbox Code Playgroud)
被调用(两次!),但它没有使用新值更新表视图!
任何人都知道如何解决这个问题?
基本上我这样做:
export_something | split -b 1000
Run Code Online (Sandbox Code Playgroud)
它将导出的结果分成文件名xaa,xab,xac,每个1000字节
但我希望我的分割输出进入具有特定前缀的文件.通常我会这样做:
split -b <file> <prefix>
Run Code Online (Sandbox Code Playgroud)
但是当你管道时它没有前缀标志.我正在寻找的是一种方法:
export_something | split -b 1000 <output-from-pipe> <prefix>
Run Code Online (Sandbox Code Playgroud)
那可能吗?
当drop回调函数时,this设置为droppable DOM节点(目标),ui.draggable是拖动的DOM节点.
是否有一种惯用的方法来获取已呈现为特定DOM节点的模型对象?
(我正在使用jQuery模板,如果它很重要.可能有多个渲染的单个modelView对象.)
考虑以下课程:
public class Person
{
private Integer age;
// Standard Accessors
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAgeAsTextString()
{
if (this.age == 20)
{
return "Twenty";
}
return "Unknown";
}
}
Run Code Online (Sandbox Code Playgroud)
我只有1个整数和2个访问器.如果我想创建一个实用程序方法,将对象的状态作为String返回,那么最好将类变量引用为this.age或应该使用getAge()?
是否有最佳实践或是由于开发人员的压制?