打印函数

如果我们从命令行运行程序,我们可能希望它们输出一些数据,而不仅仅是定义函数和其他值。 我们可以在Lispy中添加一个print函数,该函数复用了现有的lval_print函数。

该函数打印由空格分隔的每个参数,然后打印换行符完成整个流程。 函数返回空表达式。

  1. lval* builtin_print(lenv* e, lval* a) {
  2. /* Print each argument followed by a space */
  3. for (int i = 0; i < a->count; i++) {
  4. lval_print(a->cell[i]); putchar(' ');
  5. }
  6. /* Print a newline and delete arguments */
  7. putchar('\n');
  8. lval_del(a);
  9. return lval_sexpr();
  10. }