方案 - 功能“如果”

时间:2011-04-20 12:10:41

标签: scheme

在下一个代码中

(if (exp1)
    (Do1)
    (Do2))
当exp1为真时,

(Do1)正在发生。我的问题是,如果条件为真,我想做两个的事情。意思是 - 我想添加一个列表链接,并再次调用该函数。

so Do1 in my program is:
           ((cons (car hello) list1)
            (Myfunction (cdr data) list1))

它给了我下一个问题:

procedure application: expected procedure, given: ((439043 Mylist)); arguments were: ()

我该怎么做?

谢谢。

2 个答案:

答案 0 :(得分:5)

只需使用begin - 例如:

(begin
       (cons (car hello) list1)
       (Myfunction (cdr data) list1))

答案 1 :(得分:3)

您可以使用(begin)将一堆语句放入一个组合中。 但是,我认为这不是你想要的。 (cons (car hello) list1)有什么影响?没有。 (cons) 返回列表,它不会改变任何参数。

事实上,我认为您希望do1(Myfunction (cdr data) (cons (car hello) list1))

这只是一个声明,可以在您(if)的结果中不使用(begin)