Falamos um pouco sobre literate programming, vide referências abaixo. Mostrei exemplo do Org-Mode do Emacs. Em Racket existe o Scribble.
Sobre a nota https://goo.gl/5ti6TM
In fact, we suspect that these problems cannot be adequately addressed in terms of computer-language design alone, without also drawing on work in knowledge representation and automated reasoning.
Por que knowledge representation? Bem, vejam que o exemplo que o livro usa são números e operação sobre números. Eles constituem uma classe +/- bem comportada com uma hierarquia bem simples, fig 2.25.
Na figura 2.26, a ‘organizar’ em tipos e hierarquia deles o domínio de figuras geométricas já é bem mais complicado. Imaginem domínios mais específicos ainda como geologia etc.
Neste sentido knowledge representation é uma disciplina fundamental de modelagem aplicavél para este problema dos tipos.
automated reasoning… bem, aqui a coisa fica mais interessante.
- https://wiki.haskell.org/Type_inference
- https://www.youtube.com/watch?v=ZGqKsalJi4s – só para deixar vcs curiosos!
Sobre literate programming e https://goo.gl/x93rjP que diz:
We will not attempt to develop a complete algebraic-manipulation system here. Such systems are exceedingly complex programs, embodying deep algebraic knowledge and elegant algorithms.
Vale assistir:
https://www.youtube.com/watch?v=Av0PQDVTP4A
a <- 1:10
b <- a * 10
b
(mapcar (lambda (n) (* (car n) (car n))) dados)