Objective-C: steps 5-A, self-hosting, perf, README
[jackhill/mal.git] / objc / malfunc.h
1 #import <Foundation/Foundation.h>
2
3 /*
4 // Forward declaration of Env (see env.h for full interface)
5 @class Env;
6 */
7 // Forward declaration of EVAL function
8 NSObject *EVAL(id ast, id env);
9
10 @interface MalFunc : NSObject <NSCopying>
11
12 @property (copy) NSArray * ast;
13 @property (copy) Env * env;
14 @property (copy) NSArray * params;
15 @property BOOL isMacro;
16 @property (copy) NSObject * meta;
17
18 - (id)init:(NSArray *)ast env:(Env *)env params:(NSArray *)params;
19
20 - (id)apply:(NSArray *)args;
21
22 @end
23
24 NSObject * apply(id f, NSArray *args);