摘要:
由于for和foreach是命令式语言的产物,所以递归在函数式编程中使用的相当普遍,但递归的问题在于它会导致堆栈的溢出,为了解决这个问题人们重新设计了一种递归的算法--尾递归,利用这种算法我们可以在编译时将CALL指令转化为JMP指令,这样递归调用就只会占用一个堆栈帧,但这样做的前提是必须首先对递归算法进行改造使之符合尾递归的标准,那么什么是符合尾递归的标准呢?先看一个普通递归调用的例子: class Program { static void Main(string[] args) { var result = Factorial... 阅读全文
摘要:
DECLARE @TranCounter INTBEGIN TRY SET @TranCounter = @@TRANCOUNT IF @TranCounter > 0 BEGIN SAVE TRANSACTION preSavePoint; END ELSE BEGIN BEGIN TRANSACTION; END ......... IF @TranCounter = 0 BEGIN COMMIT TRANSACTION ENDEND TRYBEGIN CATCH ... 阅读全文