为什么没有方案允许你从另一个函数中调用函数?

时间:2016-02-05 03:31:47

标签: scheme lisp

(define function1 (lambda(val)
  (if (list? val) 
     (function2 (val))
     ('!list))))

当我尝试输入'(t t t)时,我收到以下错误:

application: not a procedure;
 expected a procedure that can be applied to arguments
  given: (t t t)
  arguments...: [none]

我已经定义了function2,当我自己调用它时它可以工作,但是我无法在function1中调用它。

2 个答案:

答案 0 :(得分:5)

问题是val不是函数。您应该将(function2(val))替换为(function2 val)

此外'!list也不是一个功能; <{1}}表达式的else子句也需要更正。

答案 1 :(得分:3)

'!listval不是程序。