62.10. Lisp

V ruby-talk proběhlo několik dotazů na Lisp napsaný v Ruby. Jednou z odpovědí, od Yukihiro Matsumoto byl odkaz do RAA na balíček rogue

Hal E. Fulton měl vtipnou připomínku popisující způsob jak získat interpret Lispu v Ruby: [For a Lisp interpreter in Ruby, here's a recipe. First of all, it's much easier to write a Ruby interpreter in Lisp; do that, and then turn the universe inside-out.]

Akira Tanaka pak poslal krátké řešení, „Interpreter Lispu (nebo lambda kalkulu) v Ruby za 10 minut

#!/usr/bin/env ruby
# $Id: attr_list_accessor.rb,v 1.1 2005/10/04 08:52:07 radek Exp $
# $Source: /home/radek/cvs/ruby-book/example/attr_list_accessor.rb,v $
#- Copyright (C) 2003 Radek Hnilica

class Class
    def attr_list_accessor (*symbols)
	symbols.each do |s|
	    class_eval <<-EOS
	        def add_#{s}(elem)
		    (@#{s} ||= []) << elem
	        end
	        def each_#{s}(&block)
		    (@#{s} ||= []).each(&block)
		end
	    EOS
	end
    end
end


class Test
    attr_list_accessor :foo, :bar
end

    
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .