我需要在一個clisp中創建一個函數,它將添加一個集合中的所有奇數。例如子集(2,8),結果將是15(3 + 5 + 7 )。有什麼建議麼? 我確實有這樣的事情,其中a是一組的開始,b是它的結束。Lisp函數添加一個子集中的奇數
(defun add (a b)
(if(and(< a x) (> b x))
(if(even(x))
((setq (x (+a 1))) (+ x 2))
((setq(x a)) (+ x 2))
)))
編輯:
(defun add (a b)
(if(and(< a x) (> b x))
(if(evenp x))
((setq (x (+a 1))
(loop for x from a to b do (+ x 2))))
((setq(x a)) (+ x 2)
(loop for x from a to b do (+ x 2)))
))
從第一個奇數等於起始範圍開始,循環加2並將它們全部加到總和中,直到超過範圍的末尾。 – Barmar 2013-05-07 07:47:03
好吧,我得到了該算法應該如何工作,我只是不知道如何在lisp中實現它 – user2167174 2013-05-07 07:54:59
顯示你的嘗試,我們不是在這裏爲你做你的功課。 – Barmar 2013-05-07 07:56:47