Mutual recursion: Difference between revisions

Content added Content deleted
(php)
(obj c w/o framework)
Line 151: Line 151:
System.out.println(m(i));
System.out.println(m(i));
}
}
}</lang>

=={{header|Objective-C}}==

Basically for Objective-C is valid what stated for C. In this code we show the use of two class method; this works since we need an <tt>interface</tt> block that is like declaration of functions in C code.

<lang objc>#import <objc/Object.h>

@interface Hofstadter : Object
+ (int)M: (int)n;
+ (int)F: (int)n;
@end

@implementation Hofstadter
+ (int)M: (int)n
{
if ( n == 0 ) return 0;
return n - [self F: [self M: (n-1)]];
}
+ (int)F: (int)n
{
if ( n == 0 ) return 1;
return n - [self M: [self F: (n-1)]];
}
@end

int main()
{
int i;

for(i=0; i < 20; i++) {
printf("%3d ", [Hofstadter F: i]);
}
printf("\n");
for(i=0; i < 20; i++) {
printf("%3d ", [Hofstadter M: i]);
}
printf("\n");
return 0;
}</lang>
}</lang>