Hi,

Great notes. I like a lot.

A few (mostly technical) comments:


> Concept of Computation
>
> What does it mean to compute? Turns out this is a complicated question. From
> what I can tell, to compute is an actualization (or concrete version) of a
> mathematical function. We are swimming in a universe of functions in math,
> statistics and the natural world. The lights in here are a function of
> certain inputs: ie, the amount of electricity and whether the switch is
> engaged.
>
In all fairness, this is already an opiniated view of computations.
(It is the view of computations for a functional programmer.)
On top of that, the usual maths functions, do not treat well of partiality.
(non-termination, exceptions...)


> Alan Turing: Ideas of computation can be found in i) his contributions to
> the concept of an algorithm and ii) his description of a turing machine.
> Algorithm: An algorithm is just a step-by-step procedure for calculations.
> Those steps are expressed as a finite list of well-defined instructions for
> calculating a function.
> Turing Machine: This is a theoretical computer, that consumes i) an infinite
> ribbon of tape and ii) can perform read and write operations on the tape and
> iii) alters it's own state. This is a gross simplification. But the concept
> is that a Turing machine with the correct minimal set of operations can
> calculate anything that is computable, no matter the complexity (anything
> for which there is a function).

Anything that is computable is different that anything for which there
is a function, at least in classic mathematics.

2 simple arguments:
 - some functions are not decidable.  (halting problem, for example.)
However, in classic mathematics
 such a function exists. You can even prove its value on some inputs.
 - There is an uncountable number of functions from natural numbers to
natural numbers, and a countable
  number of programs taking a natural number to a natural number. (A
program is a list of character.) So there
 is more functions than computable functions (and, uncountably,
infinitely so.).

There is a branch of mathematics, constructive mathematics, that
exclude things that you can not construct
with a program.


> LISP's approach to computing: Created by John McCarthy, Lisp was originally
> created as a kind of practical mathematical notation. Lists were the major
> data structures and functions were just another value passed into a list.
>
> Probably one of the defining qualities of Lisp, is that it can be written in
> itself (code is data). This is what makes on-the-fly change of your running
> code (ie macros) possible.
macros are not on the fly change of your running code.

Best,

Nicolas.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to