From: Jim Weirich Date: 2004-07-14T06:31:11+09:00 Subject: Re: Functional Ruby (Re: Why I don't use Ruby.) Sean O'Dell said: >> If you can rebind a symbol then you have states and side-effects... > If the symbol is local to a function, what side-effect could there be? One of the benefits of functional languages is the ability to do algebraic-like manipulations of the source code ... kinda like provably correct refactorings. For example, given X=12, within the scope of X I can replace all occurances of X with the value 12 (or the reverse, replace all occurances of 12 with X). If X is sometimes 12 and sometimes 13, then the substitution is no longer valid anywhere in the scope of X. That is why even local variables are immutable in a "pure" functional language. > No, functional languages are not supposed to have > operators. That's why they're called "functional languages"; they work > like functions. Function being defined as an operation that returns the same result given the same input, right? Operators in functional languages are functions in this sense. The difference is a matter of syntax, not semantics. E.g. 1+2 is allowed in a functional language. The binary operator + is treated as a two argument function. -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)