试图了解递归以及为什么会发生错误

时间:2019-02-09 06:43:50

标签: recursion scheme racket

我正在编写一个程序,该程序接收一个列表,并且如果列表中的元素交替使用符号,则输出true。例如,如果第一个数字为正,则第二个数字必须为负,然后第三个数字必须再次为正,依此类推。

我尝试实现一个简单的cond语句(如代码所示),但在我的check-expect中一直遇到错误。错误状态:At last, df1.head(): names 0 ... 158 159 0 ID-865950 3.0000000000000004 ... Nan Nan 1 ID-866199 1.0 ... Nan Nan 2 ID-862617 3.0 ... Nan Nan 3 ID-867838 5.0 ... Nan Nan 4 ID-27972 5.0 ... Nan Nan df2.head(): names B C 0 ID-865950 -0.206854 0.0000 1 ID-866199 -0.268366 0.0000 2 ID-862617 -0.368426 0.0000 3 ID-867838 -0.693050 0.0000 4 ID-27972 -2.103586 4.1045

first: expects only 1 argument, but found 2

在查看代码时,实际上似乎first实际上仅从列表中接受一个参数,但是错误表明情况并非如此。

1 个答案:

答案 0 :(得分:2)

在第3行和第5行,您正确地使用一个参数expand 2 if _n < 6 replace A = 3 if _n > _N - 5 *replace B = _n + 5 - _N if A == 3 replace C = . if A == 3 sort A B 调用first

lst

在第4行和第6行,您使用两个参数(即(first lst) first调用(rest lst)

0

认为你想要的是什么

(first (rest lst) 0)

代替此:

(< (first (rest lst)) 0)
;                   ↑   ↑