就OOP程序员所理解的而言(没有任何函数编程背景),monad是什么?
它解决了什么问题,它使用的最常见的地方是什么?
编辑:
为了澄清我一直在寻找的理解,让我们假设您正在将具有monad的FP应用程序转换为OOP应用程序.你会怎么做把monad的职责移植到OOP应用程序?
我正在尝试'\'字符,使用'\ a\b\c ...'只是为了自己枚举哪些字符Python解释为控制字符,以及什么.这是我发现的:
\a - BELL
\b - BACKSPACE
\f - FORMFEED
\n - LINEFEED
\r - RETURN
\t - TAB
\v - VERTICAL TAB
Run Code Online (Sandbox Code Playgroud)
我尝试的大多数其他字符,'\ g','\ s'等只是评估反斜杠和给定字符的2个字符的字符串.我明白这是故意的,对我来说很有道理.
但'\ x'是一个问题.当我的脚本到达此源代码行时:
val = "\x"
Run Code Online (Sandbox Code Playgroud)
我明白了:
ValueError: invalid \x escape
Run Code Online (Sandbox Code Playgroud)
'\ x'有什么特别之处?为什么它与其他非转义字符的处理方式不同?
我必须在现有应用程序中添加功能,并且我遇到了数据情况,我不确定如何建模.我被限制为创建新的表和代码.如果我需要改变现有的结构,我认为我的客户可能会拒绝该提案.虽然如果它是唯一能够做到正确的方法,那么我将不得不这样做.
我有一个Item表,可以链接到任意数量的表,这些表可能会随着时间的推移而增加.Item只能链接到另一个表,但另一个表中的记录可能有很多项链接到它.
表/实体的例子被链接到是Person,Vehicle,Building,Office.这些都是单独的表.
物品的实例是Pen,Stapler,Cushion,Tyre,A4 Paper,Plastic Bag,Poster,Decoration"
例如,a Poster可以分配给a Person或Officeor Building.将来如果他们添加一个Conference Room表,它也可能会被添加到表中.
我的初步想法是:
Item
{
ID,
Name
}
LinkedItem
{
ItemID,
LinkedToTableName,
LinkedToID
}
Run Code Online (Sandbox Code Playgroud)
LinkedToTableName然后,该字段将允许我在我的代码中标识要链接到的正确表.
我对这个解决方案并不是很满意,但我不能想到其他任何事情.请帮忙!:)
谢谢!
是的,可以为"Sum"或"Divide"等函数生成边界值测试.Pex是一个很好的工具.
但更多时候我们会对商业行为进行测试.让我们考虑经典Beck的tdd书中的例子:
[Test]
public void ShouldRoundOnCreation()
{
Money money = new Money(20.678);
Assert.AreEqual(20.68,money.Amount);
Assert.AreEqual(2068,money.Cents);
}
Run Code Online (Sandbox Code Playgroud)
可以生成此测试吗?没有:)我项目中95%的测试检查业务逻辑,无法生成.
Pex(特别是与Moles配对)可以提供100%的代码覆盖率,但是测试套件的高代码覆盖率从未表明,代码经过了充分测试 - 它只能让所有内容都经过测试.这非常危险.
所以,问题是 - Pex真的是有用的工具吗?
有没有办法以编程方式获得UITableView的"分组"样式填充?
我想在屏幕上调整一些大小,但是我需要知道将它们放在UITableView的UITableViewCell分组的左边或右边.
您认为这两个图书馆之间的优缺点是什么?这两个中哪一个最适合生产环境?顺便说一句,我将使用JSON而不是XML.
我也想知道社区最支持哪些库,例如教程,文档.
我有两个相同大小的图像.找到它们不同的矩形的最佳方法是什么.显然,我可以在不同的方向上浏览图像4次,但我想知道是否有更简单的方法.
例:
第一张图片http://i44.tinypic.com/2cg0u2h.png
像这样:http:
//perl.plover.com/yak/regex/samples/slide083.html
换句话说,我想成功匹配,{ { foo } { bar} }但不是{ { foo }.
我认为它可能在perl 和.NET中.是否可以在emacs正则表达式?
我想在脚本运行后清除一些目录,删除当前目录中的某些文件夹和文件(如果存在).最初,我构建了这样的脚本:
if (Test-Path Folder1) {
Remove-Item -r Folder1
}
if (Test-Path Folder2) {
Remove-Item -r Folder2
}
if (Test-Path File1) {
Remove-Item File1
}
Run Code Online (Sandbox Code Playgroud)
现在我已经在本节中列出了很多项目,我想清理代码.我怎么能这样做?
附注:在脚本运行之前清理这些项目,因为它们是从上一次运行中遗留下来的,以防我需要检查它们.
为什么在cin开始阅读之前必须刷新cout?它们不是缓冲区吗?我可以将输入读入缓冲区,同时将其放在输出缓冲区(冲洗前).2个不同的缓冲区.我在这里很困惑.
.net ×2
algorithm ×1
ascii ×1
backslash ×1
c# ×1
c++ ×1
comparison ×1
cxf ×1
emacs ×1
image ×1
iphone ×1
java ×1
jersey ×1
monads ×1
oop ×1
pex ×1
powershell ×1
python ×1
regex ×1
rest ×1
sql ×1
sql-server ×1
string ×1
uitableview ×1
unit-testing ×1
web-services ×1