我一直在玩Haskell,包括练习以无点形式编写函数.这是一个示例函数:
dotProduct :: (Num a) => [a] -> [a] -> a
dotProduct xs ys = sum (zipWith (*) xs ys)
Run Code Online (Sandbox Code Playgroud)
我想以无点形式编写这个函数.这是我在其他地方找到的一个例子:
dotProduct = (sum .) . zipWith (*)
Run Code Online (Sandbox Code Playgroud)
但是,我不明白为什么无点形式看起来像(sum .) . zipWith (*)而不是sum . zipWith (*).为什么括号中的和有2个组合运算符?
我正在寻找与截图工具相同的.NET代码 - 捕获屏幕区域.我相信它使用钩子.知道如何突出显示所选片段会很有趣.
更新:找到http://www.codeproject.com/KB/vb/Screen_Shot.aspx.虽然人们说它缺少一些重要的文件来进行适当的编译.
我总是了解到使用单元测试进行最大程度的代码覆盖是很好的.我还听到像微软这样的大公司的开发人员说他们编写了比可执行代码本身更多的测试代码.
现在,这真的很棒吗?它有时似乎完全没有时间损失,只会使维护更加困难吗?
例如,假设我有一个方法DisplayBooks()可以填充数据库中的书籍列表.产品要求表明,如果商店中有超过一百本书,则只能显示一百本.
所以,有了TDD,
BooksLimit(),这将在数据库中保存两百本书,调用DisplayBooks()并执行Assert.AreEqual(100, DisplayedBooks.Count).DisplayBooks()通过将结果限制设置为100来改变那么,直接进入第三步是不是更容易,而且根本不进行BooksLimit()单元测试?当需求从100个书籍限制改为200个限制,更改只有一个字符而不是更改测试,运行测试以检查它是否失败,更改代码并再次运行测试以检查是否成功时,是不是更敏捷?
注意:我们假设代码已完整记录.否则,有些人可能会说,他们是对的,进行完整的单元测试将有助于理解缺乏文档的代码.实际上,进行BooksLimit()单元测试将非常清楚地显示存在最大数量的书籍,并且该最大数量为100.进入非单元测试代码将更加困难,因为这样的限制可能是虽然for (int bookIndex = 0; bookIndex < 100; ...或实施foreach ... if (count >= 100) break;.
[ 更新:更改问题标题更具体]
对不起,如果我没有很好地提出问题,我无法想象如何做到这一点:
class WhatEver():
number = model.IntegerField('Just a Field', default=callablefunction)
...
Run Code Online (Sandbox Code Playgroud)
callablefunction这个查询在哪里:
from myproject.app.models import WhatEver
def callablefunction():
no = WhatEver.objects.count()
return no + 1
Run Code Online (Sandbox Code Playgroud)
我想自动写下一个号码,我不知道怎么做.
我callablefunction说它无法导入模型时出错,我认为必须有一种更简单的方法来执行此操作.甚至没有必要使用它,但我无法用pk编号来计算如何使用它.
我已经google了这个,我发现的唯一的事情是使用save()方法自动递增数字...但我想<textfield>在保存之前显示它...
你会怎么做?
如何获取DateTime.UtcNow每秒的滴答数并将其转换为String值?
不好的问题:再试一次百万分之一秒
我想为即将到来的Java EE项目使用Spring.Eclipse Spring IDE 2.3.2插件(在新的Eclipse Marketplace中)和SpringSource Tool Suite(在SpringSource上可用)之间是否有任何区别.
更确切地说:据我所知,Tool Suite基本上是Eclipse 3.5,带有一组插件.所以问题是,Eclipse Spring IDE 2.3.2提供的插件是相同的还是功能上有什么不同?
感谢您的帮助,我希望您明白Eclipse平台对于初学者来说可能是压倒性的.
我试图理解这些数组定义之间的差异:
abc=[ 0 0 0 0 0 0]
Run Code Online (Sandbox Code Playgroud)
和
abc=[0;0;0;0;0;0]
Run Code Online (Sandbox Code Playgroud)
在C中,第一个定义是
int abc[]={0,0,0,0,0,0};
Run Code Online (Sandbox Code Playgroud)
第二个定义是
int [6][1]= {{0},{0},{0},{0},{0},{0}};
Run Code Online (Sandbox Code Playgroud)
我对此是否正确?
只是好奇是否有一个既定的"最佳方法"来定位父元素内的子元素.
例如,如果我想在父元素的子元素上创建一个click事件,应该首选哪一个?
a)给出父元素和id并执行:
$('ul#parent li').click(function() {});
b)或者,给每个孩子一个班级名称并直接定位他们:
$('li.child').click(function() {});
我问,因为我试图挤出一些我可以在一个有点大的应用程序中获得的性能.逻辑将要求定位id比定位类名更快,但父>子结构是否否定了这种优势并证明了通过classname进行定位的合理性?
感谢您的任何见解.
public List<string> TagNameList (int objectId)
{
List<string> tagNameList = db.Tags.Where(ob => ob.Id == objectId).ToList();
}
db.Tags.Where(ob => ob.Id == objectId).ToList();
Run Code Online (Sandbox Code Playgroud)
我将进入db上下文中Tags,我objectId通过导航属性选择所有具有集合的标签,我通过将ObjectTags两个列中的关系存储在一起的表进行设置,两者都构成一个复合键.
样本返回一个IQueryable<app.Models.Tag>.有没有快速的方法将其转换为List<string>只有Tag.Name?
据我所知,这样做的唯一方法是使用Microsoft DOM对象,但据我所知,如果您在Linux上浏览Firefox时,这并不是普遍可用的.
出于安全性和最小化网络流量的原因,我无法将xml传递给外部工具进行验证(就像我希望的那样).无论使用何种浏览器/平台,有没有办法让javascript执行此操作?
asp.net ×2
c# ×2
.net ×1
asp.net-mvc ×1
capture ×1
datetime ×1
django ×1
django-admin ×1
haskell ×1
java ×1
java-ee ×1
javascript ×1
jquery ×1
linq ×1
matlab ×1
pointfree ×1
python ×1
screen ×1
screenshot ×1
spring ×1
tdd ×1
timespan ×1
unit-testing ×1
xml ×1
xsd ×1