Da Nedea 12 Februr 2006 18:38 Edward Kenworthy napsal:
> Hi All
>
> I've been programming for more years than I care to remember and am
> enjoying programming in Ruby (especially on Rails). So far I've found
> nothing "new" (to me) in Ruby, with the exception of the lisp-like
> features and that's something I'd really like to explore.
> Unfortunately, unless I've overlooked it, neither the pick-axe book
> nor "the ruby way"  seem to cover this. I'm particularly interested
> in which common problems these features let me solve in a more
> elegant and concise way than using regular structured/oo approaches.
>
> Anyone able to point me to a resource please?
>
> Edward

Well, Ruby is a strongly derivative language, there's not THAT much in terms 
of new and exciting features around. It's more about picking out which you 
think are nifty and which not.

As for the lisp-like operations, I'd say the blocks as lexical closures are a 
notable one. Not very often used as such, but they are somewhat useful when 
you want to develop your own control structures, As Seen In Smalltalk (tm).

I'd also put collection mapping / filtering using blocks as one. Which pretty 
much reduces the messy nested loops that you end up with when trying to do 
this in lessay Java into in my opinion much neater method chains. And then 
there's also Enumerable#inject, the swiss knife of collection operations, 
which lets you do pretty much everything. Cf. my favourite #inject example, a 
very cryptic O(n)n factorial:

	class Integer
		def factorial
			(1..self).inject(1){|m, n| m * n}
		end
	end

I also think strongtyping.rb lets you do something along the lines of poor 
man's multimethods. Or rather method overloading based on runtime types 
instead of compile-time.

David Vallner