1
我一直試圖找出這樣的2小時現在!請考慮下面的代碼:不是程序,真的嗎?
(define (PowListF list)
(PowListFHelp list (- (length list) 1)))
(define (FuncPow f n)
(if (= 0 n)
f
(lambda (x)
(FuncPow (f (- n 1)) x))))
(define (PowListFHelp list n)
(if (= n 0)
(list (list-ref list 0))
(cons (FuncPow (list-ref list n) n)
(PowListFHelp list (- n 1)))))
火箭計劃的編譯器給我的錯誤: 應用程序:不是一個程序; 預期可應用於參數 給出的過程:(##) 參數...: #
和它所指向的(利弊部分...
和下面的代碼,即採用相同的,如果結構不工作:
(define (polyCheb n)
(reverse (polyChebHelp n)))
(define (polyChebHelp n)
(if (= n 0)
(list (polyChebFunc n))
(cons (polyChebFunc n)
(polyChebHelp (- n 1)))))
(define (polyChebFunc n)
(if (= n 0)
(lambda (x) 1)
(if (= n 1)
(lambda (x) x)
(lambda (x)
(- (* (* 2 x)
((polyChebFunc(- n 1)) x))
((polyChebFunc(- n 2)) x))))))
編輯:PowListF報錯的函數列表爲參數,返回相同的列表ST每個功能是由與自身(其索引+ 1)倍...
用法: ((list-ref(PowListF(list(lambda(x)x)(lambda(x)(expt x 2))))1)2) 值應該是2^2^2 = 2^4 = 16
編輯2:
這是溶液:
(define (FuncPow f n)
(if (= 0 n)
f
(lambda (x) (f ((FuncPow f (- n 1)) x)))))
它確實返回過程不呢? –
看我的編輯。用法。 – leppie
我的assumptaion是該列表是程序列表,所以(list-ref list n)是在索引n處的程序.... –