include "NSLog.incl" CFStringRef local fn FibonacciSequences( type as CFStringRef, startSequence as CFArrayRef, count as NSInteger ) CFMutableArrayRef result = fn MutableArrayWithArray( startSequence ) NSInteger n = fn ArrayCount( startSequence ) while ( fn ArrayCount( result ) < count ) CFArrayRef lastNElements = fn ArraySubarrayWithRange( result, fn RangeMake( fn ArrayCount( result ) - n, n ) ) CFNumberRef sumNumber = (CFNumberRef)fn ObjectValueForKeyPath( lastNElements, @"@sum.self" ) NSInteger sum = fn NumberIntegerValue( sumNumber ) MutableArrayAddObject( result, @(sum) ) wend return fn StringWithFormat( @"%10s: [%@]", fn StringUTF8String( type ), fn ArrayComponentsJoinedByString( result, @", " ) ) end fn = NULL NSLog( @"%@", fn FibonacciSequences( @"lucas", @[@1,@1], 15 ) ) NSLog( @"%@", fn FibonacciSequences( @"tribonacci", @[@1,@1,@2], 15 ) ) NSLog( @"%@", fn FibonacciSequences( @"tetranacci", @[@1,@1,@2,@4], 15 ) ) NSLog( @"%@", fn FibonacciSequences( @"pentanacci", @[@1,@1,@2,@4,@8], 15 ) ) NSLog( @"%@", fn FibonacciSequences( @"hexanacci", @[@1,@1,@2,@4,@8,@16], 15 ) ) NSLog( @"%@", fn FibonacciSequences( @"heptanacci", @[@1,@1,@2,@4,@8,@16,@32], 15 ) ) NSLog( @"%@", fn FibonacciSequences( @"octonacci", @[@1,@1,@2,@4,@8,@16,@32,@64], 15 ) ) NSLog( @"%@", fn FibonacciSequences( @"nonanacci", @[@1,@1,@2,@4,@8,@16,@32,@64,@128], 15 ) ) NSLog( @"%@", fn FibonacciSequences( @"decanacci", @[@1,@1,@2,@4,@8,@16,@32,@64,@128,@256], 15 ) ) HandleEvents