News for hackers. Stuff that matters.
Re:Impressions of Go by pcwalton on Tuesday July 23, 2013 @01:13PM (#6091400)
WITH-OPEN-FILE is not about controlling side effects at all; it's about making it hard to forget to close the file. Go's analogue is "defer".

In any case, I don't even know what we're arguing about anymore. My point is simply that FP is not about having no side effects, and saying "side effects are important" does not argue against the value of other FP innovations, such as HM-style type inference, option types, pattern matching, first-class functions, algebraic data types, etc.

Re:Impressions of Go by mseepgood on Tuesday July 23, 2013 @01:41PM (#6091608)
When you say having no side effects is not a FP characteristic, then I say Hindley-Milner type inference, option types, pattern matching and algebraic data types aren't either. Many functional programming languages aren't even statically typed.
Re:Impressions of Go by jbooth on Tuesday July 23, 2013 @01:44PM (#6091638)
I'd go a step further and say that controlling side effects, as a consequence of pure-functional design, is a bigger part of FP than any given type system. But hey, what do I know, I just did the SICP exercises a decade ago and forgot about it afterwards.
Re:Impressions of Go by pcwalton on Tuesday July 23, 2013 @02:05PM (#6091792)
We're in agreement that functional programming encompasses a range of characteristics and is hard to define.
Re:Impressions of Go by jbooth on Tuesday July 23, 2013 @03:54PM (#6092501)
You're saying that the type system has something to do with functional programming.

I'm saying that if Scheme, LISP and Haskell are all functional languages, obviously the type system is besides the point -- they're radically different in that aspect. Functional programming is about functions.

Re:Impressions of Go by Peaker on Tuesday July 23, 2013 @04:26PM (#6092673)
I'd say Scheme and Haskell are functional languages, as they emphasize programming in a functional style: Composing functions to process values. "Value-oriented programming".

I never understood why anyone classified Lisp (typically CL) as a functional language, as it isn't any more functional than Python, Ruby or Perl.