<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9iRGRHbC5wbmcifQ==” alt =“在此处输入图像描述”>
因此,这段代码在我的老师给我们准备的递归工作表上。老师指出,在LISP中,您将操作数写在变量之前,这很有意义。没什么意思的是,我的教授说第二行的if块仍然可以正常读取,“如果y小于1”,但是他说,第三行的代码在“ y不小于1”时执行。工作表上的问题要求我们找到f(3 2)的结果。任何一个问题的任何答案将不胜感激!
if语句具有三个子项:测试条件,测试为true时的结果和测试为false时的结果。在您的代码中,这可能会造成混淆,因为最后两个元素已在第3行中合并。真实的结果只是“ x
”,而错误的结果是(f (* x x) (- y 1))
。因此,该语句将被读为“如果y小于1,则返回x,否则返回(f (* x x) (- y 1))
”。我希望这足以让您入门。