我正在自学俄冈崎的纯功能数据结构,现在正在练习3.4,它要求推理并实施一个重量偏向的左派堆.这是我的基本实现:
(* 3.4 (b) *)
functor WeightBiasedLeftistHeap (Element : Ordered) : Heap =
struct
structure Elem = Element
datatype Heap = E | T of int * Elem.T * Heap * Heap
fun size E = 0
| size (T (s, _, _, _)) = s
fun makeT (x, a, b) =
let
val sizet = size a + size b + 1
in
if size a >= size b then T (sizet, x, a, b)
else T …Run Code Online (Sandbox Code Playgroud) onSizeChanged()一旦用户触摸屏幕的某些部分就被调用?
我对它的顺序感到困惑onDraw(),onMeasure()并被onSizeChanged()称为.
在Scala(2.7.7final)中,该Predef.println方法被定义为具有以下签名:
def println (x : Any) : Unit
Run Code Online (Sandbox Code Playgroud)
怎么来,那么以下工作:
scala> println(1,2)
(1,2)
Run Code Online (Sandbox Code Playgroud)
编译器是否自动将以逗号分隔的参数列表转换为元组?通过什么魔术?这里是否存在隐式转换,如果是,那么哪一个?
我正在用C#编写一个扑克框架,我不喜欢我现在的设计.我的目标是拥有一个游戏引擎,可以非常快速地以批处理模式相互播放多个AI代理,并且可以与多个人(可能通过Silverlight客户端)玩多个AI代理.我希望保持高效率但保持灵活性 - 例如,它应该能够玩有限德州扑克,无限注德州扑克,限制7张牌梭哈等游戏.
我目前的设计相当笨拙且不灵活:
HandInfo类包含有关如何设置手的所有信息.Play方法看起来像这样:
HandHistory Play(HandInfo info)
{
PotManager pots = new PotManager(info);
BetManager bets = new BetManager(info);
HandHistory history = CreateHistory(info);
bets.CollectBlinds();
if(!bets.GameOver)
{
DealHoleCards();
if(bets.PlayersThatCanStillBet > 1)
bets.CollectBets();
if(!bets.GameOver)
{
DealFlop();
... and on and on
}
}
return history;
}
Run Code Online (Sandbox Code Playgroud)
问题的出现是因为有很多小事要考虑收集百叶窗等等.Bot和Bet经理课程变成了一场噩梦,并且总是充满了虫子.此外,我的引擎设计仅支持一种游戏类型(德州扑克)而不是其他类型.
我的主要排名是效率第一,因为引擎主要用作数十亿手的AI模拟器.但是,我想有一种更优雅的方式可以做到这一点.
我最近遇到了一个程序员编写的代码,他在catch中有一个try-catch语句!
请原谅我无法粘贴实际代码,但他所做的与此类似:
try
{
//ABC Operation
}
catch (ArgumentException ae)
{
try
{
//XYZ Operation
}
catch (IndexOutOfRangeException ioe)
{
//Something
}
}
Run Code Online (Sandbox Code Playgroud)
我个人觉得这是我见过的最差的代码!在1到10的范围内,你认为我应该多久去给他一点心思,还是我过度反应?
编辑:他在捕获中实际做了什么,他正在执行一些操作,这些操作可以/应该在初始尝试失败时完成.我的问题是拥有干净的代码和可维护性.将第一个catch中的异常委托给另一个函数或调用函数就可以,但是添加更多代码可能会或者可能不会将异常抛入第一个catch中,这是我觉得不好的.我试图避免多个堆叠的"if-loop"语句,我发现这同样糟糕.
我正在学习Grails的Grails - 由Jason Rudolph的书开始.我的域类看起来像这样:
class Race {
String name;
Date startDateTime
String city
String state
Float distance
Float cost
Integer maxRunners = 10000
static hasMany = [registrations: Registration]
static constraints = {
name(maxSize: 50, blank: false)
startDateTime(validator: {
return it > new Date()
})
city(maxSize: 30, blank: false)
state(inList: ['GA', 'NC', 'SC', 'VA'], blank: false)
distance(min: 3.1f, max: 100f)
cost(min: 0f, max: 999.99f)
}
String toString() { "${this.name} : ${this.city}, ${this.state}" }
}
Run Code Online (Sandbox Code Playgroud)
我想测试startDateTime字段的自定义验证.测试看起来像这样:
class RaceTests extends GrailsUnitTestCase {
protected …Run Code Online (Sandbox Code Playgroud) 我理解Mock和Stub之间的区别.
但是RhinoMock框架中不同类型的模拟混淆了我.
有人可以用RhinoMock框架来解释Mocks Vs StrictMocks和DynamicMocks的概念.
非常感谢您的回答.
我有两个字典的Python列表,entries9和entries10.我想比较项目并将联合项目写入一个名为的新列表joint_items.我也想不匹配的项目保存到两个新的名单,unmatched_items_9和unmatched_items_10.
这是我的代码.获取joint_items和unmatched_items_9(在外部列表中)非常简单:但我如何获得unmatched_items_10(在内部列表中)?
for counter, entry1 in enumerate(entries9):
match_found = False
for counter2,entry2 in enumerate(entries10):
if match_found:
continue
if entry1[a]==entry2[a] and entry1[b]==entry2[b]: # the dictionaries only have some keys in common, but we care about a and b
match_found = True
joint_item = entry1
joint_items.append(joint_item)
#entries10.remove(entry2) # Tried this originally, but realised it messes with the original list object!
if match_found:
continue
else:
unmatched_items_9.append(entry1)
Run Code Online (Sandbox Code Playgroud)
性能不是真正的问题,因为它是一个一次性的脚本.
我的错误处理函数中有一个子例程,该例程试图关闭在每个Excel实例中打开的每个工作簿。否则,它可能会保留在内存中并破坏我的下一个vbscript。它还应关闭每个工作簿而不保存任何更改。
Sub CloseAllExcel()
On Error Resume Next
Dim ObjXL As Excel.Application
Set ObjXL = GetObject(, "Excel.Application")
If Not (ObjXL Is Nothing) Then
Debug.Print "Closing XL"
ObjXL.Application.DisplayAlerts = False
ObjXL.Workbooks.Close
ObjXL.Quit
Set ObjXL = Nothing
Else
Debug.Print "XL not open"
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,此代码并非最佳。例如,它可以在一个Excel实例中关闭2个工作簿,但是如果您打开2个excel实例,则只能关闭1个。
如何重写此代码以关闭所有 Excel,而不保存任何更改?
如何在不关闭承载此脚本的Access文件的情况下对Access进行此操作?
问题 我想使用我创建的自定义验证器验证字段,如果字段有值,则基本上是电话号码的正则表达式,否则不需要验证,因为它是可选的.
自定义验证器:
$.validator.addMethod('phone', function (value) {
return /^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}$/.test(value);
}, 'Please enter a valid US phone number.');
Run Code Online (Sandbox Code Playgroud)
规则:
phone: {
required: true,
phone: true
},
fax: {
phone: true
}
Run Code Online (Sandbox Code Playgroud)
我甚至尝试过:
phone: {
required: true,
phone: true
},
fax: {
required: function(element){
if (!$("#cf-fax").val()) { return true; } else { return false; }
}
phone: true
}
Run Code Online (Sandbox Code Playgroud)
作为参考,这是我试图引用的字段:
<input type="text" name="fax" class="optional" size="15" maxlength="14" id="cf-fax" />
Run Code Online (Sandbox Code Playgroud)
任何帮助都表示赞赏,因为我很遗憾.= \