jedbarlow / cmput495

495 Presentation
0 stars 0 forks source link

Review #3

Open dylana37 opened 10 years ago

dylana37 commented 10 years ago

I just pushed my contribution up. If you have any comments or fixes feel free to say so. It seems to have some minor issues with my references but other than that it works fine.

Chobbes commented 10 years ago

There are a lot of typos and grammatical errors that need to be fixed up here. Significant portions of this actually make no sense:

"The immutability of variables and the no side effects mean that functional programming make it a ideal candidate for parallel computing."

I think we need to be more concise too.

Also:

"Surprisingly the first functional language you could code in drew only minor influence from lambda calculus. This language was Lisp. Lisp was first conceptualized in the late 50s by John McCarthy as a means to process lists algebraically to help his research into artificial intelligence."

Lisps are pretty much "lambda calculus the programming language" (particularly Scheme / Racket) so I REALLY don't think it's fair to say "only minor influence". It was probably the single largest influence on this family of languages, and it definitely shows.

Plus I think talking about lambda calculus as a language is kind of wrong. You could argue it, but It's more of a mathematical formalism of computation. I wouldn't exactly call turing machines a language, at least not in the context of a "programming language". It just seems awkward to me.

I don't really think it's worth saying something like: "Lisp is known as one of the most influential languages ever written." without having anything interesting to say about it. We could put something better here, or scrap it entirely.

I think if we're going to talk about the history of functional languages it's better to talk about how most of them weren't really pure functional languages and relating it to some of the problems with having a pure functional language. Most of the first "functional" languages were kind of multi-paradigm in some sense -- I would argue that early lisps could be pretty imperative (they had friggen goto, man). A lot of this was cruft taken from other languages of the time, but also a good part of this was that making a pure functional language like Haskell was fraught with problems that had to be solved. Haskell was kind of the first serious effort to create a standardized language for researching pure functional languages, and it does neat things to solve problems with things like I/O, and state.

"The immutability of variables and the no side effects mean that functional programming make it a ideal candidate for parallel computing."

I think it's worth briefly explaining why that is / also mentioning formal verification (it's easier to reason about your programs and prove them correct). I guess this can be in the speech part?

We can narrow some of this down in the meeting tomorrow.