include "NSLog.incl" CFArrayRef local fn ForwardDifference( arr as CFArrayRef ) CFMutableArrayRef result = fn MutableArrayNew for NSUInteger i = 1 to len(arr) - 1 CFNumberRef diff = @(dblval(arr[i]) - dblval(arr[i-1])) MutableArrayAddObject( result, diff ) next end fn = result CFArrayRef local fn NthForwardDifference( arr as CFArrayRef, n as NSInteger ) if ( len(arr) == 0 ) then return @[] if ( n == 0 ) then return arr end fn = fn NthForwardDifference( fn ForwardDifference( arr ), n - 1 ) void local fn DoIt CFArrayRef initialArray = @[@90, @47, @58, @29, @22, @32, @55, @5, @55, @73] for NSInteger i = 0 to 9 CFArrayRef diff = fn NthForwardDifference( initialArray, i ) NSLog(@"[%@]", fn ArrayComponentsJoinedByString( diff, @", " )) next end fn fn DoIt HandleEvents