✍ Ponto fixo

Ponto fixo em Emacs Lisp

Parte da motivação e estimulo de programar é ter-se imediatamente e com exactidão pouco vulgar, por comparação com outras actividades, o resultado imediato de um pensamento. Suponho que quem pensa claramente não precise de se dedicar a estas actividades. Programar permite, entre outras coisas, e quando se está a aprender, reescrever coisas que se sabem noutros contextos ou situações. É exactamente isso que me acontece, como mostram bem os sucessivos exemplos em Emacs Lisp que se podem encontrar nestas páginas. Um caso muito relevante é, por exemplo, a procura de pontos fixos de funções reais.

Considere-se a função nest em Emacs Lisp definida por

(defun nest (op xo n)
  (cond ((= n 1)
        xo)
        (t (nest op (funcall op xo) (- n 1)))))

que faz a composição sucessiva da operação op um número n de vezes tomando o valor inicial xo. A instrução (nest 'cos 1 10) faz 10 composições da função cos tomando o valor inicial 1. O Resultado é: 0.7314040424225098. O valor da expressão (cos (nest 'cos 1 10)) é 0.7442373549005569, "quase" o anterior.

Estimulante não?

Palavras chave/keywords: ponto fixo, lisp, matemática

Última actualização/Last updated: 2014-11-13 [00:04]


1999-2014 (ç) 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.