New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementation of "kv" method for rakudo's hashes. #74
Comments
From @bacekHello. There is implementation of "kv" method for rakudo. Only languages/perl/src/classes/Hash.pir affected. -- |
From @bacekkv.diffIndex: src/classes/Hash.pir
===================================================================
--- src/classes/Hash.pir (revision 27306)
+++ src/classes/Hash.pir (working copy)
@@ -39,7 +39,24 @@
.return ($S0)
.end
+.sub 'kv' :method
+ .local pmc iter
+ .local pmc rv
+ iter = new 'Iterator', self
+ rv = new 'List'
+ loop:
+ unless iter goto end
+ $S1 = shift iter
+ push rv, $S1
+ $S1 = iter[$S1]
+ push rv, $S1
+ goto loop
+ end:
+ .return (rv)
+.end
+
+
.sub 'keys' :method
.local pmc iter
.local pmc rv
|
From @bacekOn Sat May 03 04:59:53 2008, bacek wrote:
Hmm... Looks like no one really interested in... -- |
@bacek - Status changed from 'new' to 'open' |
From @bacekOn Sat May 03 04:59:53 2008, bacek wrote:
Slightly improved version of patch made after discussion on #parrot. |
From @bacekkv.diffIndex: src/classes/Hash.pir
===================================================================
--- src/classes/Hash.pir (revision 27567)
+++ src/classes/Hash.pir (working copy)
@@ -39,7 +39,30 @@
.return ($S0)
.end
+=item kv (method)
+Returns elements of hash as array of C<Pair(key, value)>
+
+=cut
+
+.sub 'kv' :method
+ .local pmc iter
+ .local pmc rv
+ iter = new 'Iterator', self
+ rv = new 'List'
+ loop:
+ unless iter goto end
+ $S1 = shift iter
+ push rv, $S1
+ $S1 = iter[$S1]
+ push rv, $S1
+ goto loop
+ end:
+ .return (rv)
+.end
+
+
+
.sub 'keys' :method
.local pmc iter
.local pmc rv
@@ -122,6 +174,15 @@
=item kv
+=cut
+
+.sub kv :multi('Hash')
+ .param pmc hash
+
+ .return hash.'kv'()
+.end
+
+
=item pairs
=item values
|
From @pmichaudApplied in r27652, thanks! Pm |
@pmichaud - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#53666 (status was 'resolved')
Searchable as RT53666$
The text was updated successfully, but these errors were encountered: