一个简单的附加函数,如下所示(在F#中): match s with | (x::ss) -> x :: (appss t)
当s变大时会崩溃,因为函数不是尾递归的。我注意到F#的标准append函数不会在大列表中崩溃,所以它必须以不同的方式实现。所以我想知道: append的尾递归定义是什么样子<em
我一直在阅读 (v.2.0),发现了一些非常有趣的东西:let foldArraySubRight (f:OptimizedClosures.FSharpFunc<'T,_,_>) (arr: 'T[]) start finlet arr = toArray list foldArraySubRight f ar