Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Eric Bruecklmeier Newsgroups: de.alt.folklore.computer Subject: Re: Pascal auf Nr. 10 ;-) Date: Sat, 6 Sep 2025 15:36:12 +0200 Organization: 5i7 Lines: 47 Message-ID: References: <26f84d3bd29d92a0485841d3dc2c08f1@wxp-nb-01.mouse.local> <109cdpc$14159$1@solani.org> Reply-To: u@5i7.de Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net oQCxRcefWckkimMfYWCCiQwm6Ir2EO9RiYR2Pod2b+sG0sw5qT Cancel-Lock: sha1:0is4bdGh4EW+NgYX0XNTiQXv9P0= sha256:2NZ7YbkY2NleBWZfO+iGLN2FF1yUSs062+9rcLD2uIY= User-Agent: Mozilla Thunderbird Content-Language: de-DE In-Reply-To: Xref: csiph.com de.alt.folklore.computer:52013 Am 06.09.2025 um 15:17 schrieb Peter J. Holzer: > On 2025-09-06 14:02, Eric Bruecklmeier wrote: >> Am 06.09.2025 um 13:59 schrieb Peter J. Holzer: >>> On 2025-09-06 11:40, Eric Bruecklmeier wrote: >>>> Am 05.09.2025 um 17:33 schrieb Stefan Ram: >>>>> Ruby hat wohl nicht die eleganten "comprehensions" >>>>> (Bildungsregeln), und arbeitet stattdessen mit Aufrufen >>>>> wie "map". >>>> >>>> Pattern matching geht schon in die Richtung, hat aber zugegebenermaßen >>>> eine aufwendigere Syntax. >>> >>> Ich weiß nicht, was pattern matching in Ruby ist, aber wenn es das >>> gleiche ist wie in den mir bekannten Programmiersprachen (ein >>> switch/case-Statement mit Superkräften), dann sind Comprehensions bzw. >>> Generatoren in Python etwas ganz anderes. >>> >>> Eine Comprehension ist eine Syntax zum Erzeugen von Werten mit mehreren >>> Elementen (Lists, Dicts, ...). >>> >> >> Das ist mir klar. In Ruby brauchst Du dafür halt einen Iterator oder >> Enumerator zusammen mit einer Logik, die bestimmte Objekte behält oder >> verwirft. Das ist strukturell etwas anderes, aber das Ergebnis ist das >> selbe. > > Aber ist das das, was man in Ruby als Pattern Matching bezeichnet? > Nein, aber man könnte es natürlich auch zum Bau von Strukturen verwenden. Patern Matching sieht z.B. so aus: ar = [[1,2],["a","b"],[],[:eins, :zwei]] ar.each { case it in [Integer => x,_] in [x,String] in [:eins,x] else x = "nix!" end puts x }