Sumatório: imperativo vs funcional
Implementação em Emacs Lisp da soma das componentes de dois vectores.
Duas formas de fazer a mesma coisa em Emacs Lisp, a primeira de uma forma imperativa, a segunda funcional; implementam a soma de um vector.
A primeira: forma imperativa
(defun sum (x) "Sum of elements of X." (let ((i 0) (aux 0)) (while (< i (length x)) (setq aux (+ aux (nth i x)) i (1+ i))) aux))
A segunda: forma funcional
(defun sum (x) "Sum of elements of X." (cond (x (+ (car x) (sum (cdr x)))) (t 0)))
Mais bonita, esta última!
Palavras chave: Emacs, Lisp, matemática, programação funcional, programação imperativa, programaçãoÚltima actualização/Last updated: 2012-02-26 [15:49]
1999-2011 (c) Tiago Charters de Azevedo
São permitidas cópias textuais parciais/integrais em qualquer meio com/sem alterações desde que se mantenha este aviso.
Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.
