我喜欢这个教程http://steve-yegge.blogspot.com/2008/01/emergency-elisp.html它非常简短而且内容丰富。
如果它是您想要的省略号,只需在右括号后使用 Cx Ce 即可。你在那里有很多错误。
(defun binom-coef(a b)
;; (if (or (< a b) (< b 0)) nil)
;; Wery strange expression. (if CONDITION IF-TRUE IF-FALSE). You
;; didn't set IF-FALSE, so it's nil by default,
;; and you set IF-TRUE to nil. It allways returns nil.
;; If you want to leave from function when wrong args given
(block nil
(if (or (< a b) (< b 0)) (return))
;; can be throw/catch also
;; (flet fakul(n)
;; ;; wrong usage of flet. It's used like let, (flet ((name1 args1
;; ;; body1) (name2 args2 body2) ... )
;; ;; BODY-WHERE-FUNCTIONS-ARE-VISIBLE)
;; (cond
;; ((= n 0) 1)
;; (t (* n (fakul (- n 1))))
;; ))
(flet ((fakul (n)
(cond
((= n 0) 1)
(t ; shound be like (< 0 n)
(* n (fakul (- n 1))))
)))
(fakul 5)
;; => 120
(/ (fakul a) (* (fakul b) (fakul(- a b))))
;; ^ Inside flet ^
))
)
(binom-coef 8 3) ; <= look, it's not (8 3), because (8 3) means
; execute function `8' with argument 3. If you
; wanted to pass list with 8 and 3, it should be
; (quote (8 3)), or simply '(8 3)
;; => 56