我開始接觸Lisp,我正在嘗試使用萊布尼茲公式來編寫一個近似pi的過程;我想我很近,但我不知道如何繼續。當前的行爲是它正確地進行了第一次計算,但程序終止並顯示數字「1」。我不確定我是否能像遞歸調用這個定義的函數, ;;; R5RS
(define (pi-get n)
(pi 0 1 n 0))
(define (pi sum a n count)
;;; if n ==
我正在嘗試僅使用減法來創建除法函數。到目前爲止,我已經足夠處理積極的數字。不斷欺騙我的是處理負數。我可以繼續,只是抓住x和y的絕對值,它完美地工作,但我的答案永遠不會是消極的。這裏的任何人都必須以前做過類似的事情嗎? (define Divide (lambda (a b c)
(if (> a 0)
(Divide (- a b) b (+ c 1))
我正在嘗試編寫一個帶兩個參數的forAll過程:系列的開始和結束值。結果閉包需要兩個參數:適用於系列中所有元素的操作以及初始值。 這就是我所擁有的,我似乎錯過了某些東西,或者我不理解背後的概念。 (define (forAll n m)
(if (>= n m) '()
(forAll (+ n 1) m))
(lambda (op start) (op start n m
我正在研究計劃中的作業MetaCircular評估者,並且我需要允許用戶通過將其添加到表中來安裝特殊的表單。這個想法是,當用戶輸入諸如(square 5)之類的東西時,評估者將查找名爲square的表格。如果找到,它將返回lambda聲明,如(lambda (x) (* x x))。 當代碼返回lambda語句時出現問題。我收到以下錯誤信息: Error: Bad function object: