RosettaCodeData/Task/Forward-difference/FutureBasic/forward-difference.basic

27 lines
810 B
Plaintext

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