diff options
Diffstat (limited to 'MLKCons.m')
-rw-r--r-- | MLKCons.m | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -18,6 +18,8 @@ #import "MLKCons.h" +#import <Foundation/NSString.h> + @implementation MLKCons +(MLKCons*) cons:(id)car with:(id)cdr @@ -54,6 +56,25 @@ ASSIGN (_cdr, value); } +-(NSString *)bareDescriptionForLisp +{ + if (!_cdr) + return [NSString stringWithFormat:@"%@", [_car descriptionForLisp]]; + else if (![_cdr isKindOfClass:[MLKCons class]]) + return [NSString stringWithFormat:@"%@ %@", + [_car descriptionForLisp], + [_cdr bareDescriptionForLisp]]; + else + return [NSString stringWithFormat:@"%@ . %@", + [_car descriptionForLisp], + [_cdr descriptionForLisp]]; +} + +-(NSString *)descriptionForLisp +{ + return [NSString stringWithFormat:@"(%@)", [self bareDescriptionForLisp]]; +} + -(void) dealloc { RELEASE (_car); |