altos/scheme: Add ports. Split scheme code up.
[fw/altos] / src / scheme / ao_scheme_lambda.c
index e818d7b04bd5dcbcfe6a57431d27a165c1b89b99..18470efe54193c2409de11caf89d6c06abe1e7b5 100644 (file)
@@ -50,19 +50,19 @@ const struct ao_scheme_type ao_scheme_lambda_type = {
 };
 
 void
-ao_scheme_lambda_write(ao_poly poly, bool write)
+ao_scheme_lambda_write(FILE *out, ao_poly poly, bool write)
 {
        struct ao_scheme_lambda *lambda = ao_scheme_poly_lambda(poly);
        struct ao_scheme_cons   *cons = ao_scheme_poly_cons(lambda->code);
 
-       printf("(");
-       printf("%s", ao_scheme_args_name(lambda->args));
+       putc('(', out);
+       fputs(ao_scheme_args_name(lambda->args), out);
        while (cons) {
-               printf(" ");
-               ao_scheme_poly_write(cons->car, write);
+               putc(' ', out);
+               ao_scheme_poly_write(out, cons->car, write);
                cons = ao_scheme_poly_cons(cons->cdr);
        }
-       printf(")");
+       putc(')', out);
 }
 
 static ao_poly