1 #import <Foundation/Foundation.h>
4 // Forward declaration of Env (see env.h for full interface)
7 // Forward declaration of EVAL function
8 NSObject
*EVAL(id ast
, id env
);
10 @interface MalFunc
: NSObject
<NSCopying
>
12 @
property (copy
) NSArray
* ast
;
13 @
property (copy
) Env
* env
;
14 @
property (copy
) NSArray
* params
;
15 @property BOOL isMacro
;
16 @
property (copy
) NSObject
* meta
;
18 - (id
)init
:(NSArray
*)ast env
:(Env
*)env params
:(NSArray
*)params
;
20 - (id
)apply
:(NSArray
*)args
;
24 NSObject
* apply(id f
, NSArray
*args
);