Hi,
ich denke  'each_cons' ist besser geeignet als 'each_slice'

Gruß
Karl-Peter**

Alex Peuchert schrieb:
Hi,
Ruby kann das natürlich schon:

# ein String:
s = "Ruby kann das schon"

# zuerst brauchst du ein Array mit den einzelnen Zeichen des Strings:
a = s.split(//)

# dann über einzelne slices des Arrays iterieren:
a.each_slice(3) { |slice| puts slice.to_yaml }

also, die Methode heißt #each_slice und kommt aus dem Modul Enumerable.

Viel Spaß damit, Alex






2009/10/26 Oliver Haag <oh...@ohcon.de>:
Hallo,

ich habe eine Ruby Frage. Weiß jemand wie man eine each-Methode
implementiert oder wo man das nachlesen kann.

Hintergrund: ich möchte über einen String iterieren und Buchstabenfolgen
auswerten. Zunächst alle 2-er-Folgen oder 2-Tupel
später auch 3-Tupel und 4-Tupel.

Mit has_tupel() und get_tupel() krieg ichs zwar hin. Ist aber nicht sehr
ruby-isch

class TextBuffer
 def initialize(text)
  @text = text
  @pos = 0
 end

 # checks position: kann man noch einen n-tupel extrahieren?
 def has_tuple?(tsize=2)
  @pos <= @text.length-tsize
 end

 # gets next tuple and advances position 1 step
 # we want all possible n-tuples, so we advance only 1 step (and not tsize)
 def get_tuple(tsize=2)
  tuple = @te...@pos..@pos+tsize-1]
  @pos += 1
  return tuple
 end

 ..

aber ich hätte lieber each_tuple(tsize)  für die elegante Ruby-Syntax

  my_text_buffer.each_tuple(2) do |tuple|
    # do_somethig
  end

Hat jemand eine Idee, wie man das implementiert?
Gefunden habe ich bisher http://www.ruby-forum.com/topic/175637
Aber da wird ja nur die each-methode durchgereicht.


Viele Grüße
Oliver Haag

_______________________________________________
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug

_______________________________________________
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug


--
Karl-Peter Kutz                                     http://rubyforge.de
Merkuranus Software & Service GmbH                    merkura...@gmx.de
Adam-Schwinn-Str. 21                          phone: +49 (0)6157 930043
64319 Pfungstadt, Germany                       fax: +49 (0)6157 930044
-----------------------------------------------------------------------
Registergericht: Darmstadt HRB 7394              Sitz: 64319 Pfungstadt
Geschäftsführer: Karl-Peter Kutz                 Ust.-IdNr. DE200771252

=======================================================================
in Zusammenarbeit mit der
-------------------------
ALEVANTi IT-Dienstleistungen eG             karl-peter.k...@alevanti.de
81739 München, Germany                           http://www.alevanti.de
=======================================================================

_______________________________________________
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an