Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.dougwise.org!nntpfeed.proxad.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!talisker.lacave.net!lacave.net!not-for-mail From: Brian Candler Newsgroups: comp.lang.ruby Subject: Re: anonymous closures with Proc,new, lambda and -> Date: Thu, 21 Apr 2011 04:34:59 -0500 Organization: Service de news de lacave.net Lines: 28 Message-ID: <47f9d57b75fad86a1b76cb96e69a48b6@ruby-forum.com> References: <52198c724199b47f9d59c43592238d37@ruby-forum.com> <26d555101380a80dba2c4c1f0f82ea08@ruby-forum.com> <2f016f7e1eb6e5c88c2ad0a5d43683b0@ruby-forum.com> NNTP-Posting-Host: bristol.highgroove.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Trace: talisker.lacave.net 1303378589 20034 65.111.164.187 (21 Apr 2011 09:36:29 GMT) X-Complaints-To: abuse@lacave.net NNTP-Posting-Date: Thu, 21 Apr 2011 09:36:29 +0000 (UTC) In-Reply-To: X-Received-From: This message has been automatically forwarded from the ruby-talk mailing list by a gateway at comp.lang.ruby. If it is SPAM, it did not originate at comp.lang.ruby. Please report the original sender, and not us. Thanks! For more details about this gateway, please visit: http://blog.grayproductions.net/categories/the_gateway X-Mail-Count: 381987 X-Ml-Name: ruby-talk X-Rubymirror: Yes X-Ruby-Talk: <47f9d57b75fad86a1b76cb96e69a48b6@ruby-forum.com> Xref: x330-a1.tempe.blueboxinc.net comp.lang.ruby:3301 Stu wrote in post #994213: > Which language would be a decent new users language which would fit > well into my unix toolkit above as well as threading the knowledge > back into ruby's hybrid programming? If you are coming to functional programming from an imperative background, I would recommend Erlang as a sound starting point. It's a highly practical language for real-world applications, albeit with a frustrating syntax. In Erlang, functions can and do have side effects, in particular the sending of messages between processes. However variables can be bound only once, and data structures are immutable. There is no "A = A + 1" :-) So each individual process is functional, and you start getting your head around functional algorithms "in the small", such as using recursion for looping and traversing data structures. But you don't have to worry about building your entire application in a purely functional form. The immutability of data means concurrency is easy (no mutexes!) and you have zero-copy passing of data structures, at least between processes on the same node. -- Posted via http://www.ruby-forum.com/.