On Tue, Dec 12, 2006 at 02:19:46PM -0800, Ovid wrote:
> First, how do I do introspection in Pugs?  CPAN's Perl6::Bible hasn't
> been updated in a while, but the various ways to get a list of methods
> (from
> http://search.cpan.org/dist/Perl6-Bible/lib/Perl6/Bible/S12.pod#Introspection
> or http://tinyurl.com/yxukar) don't appear to work.  They all throw
> syntax errors or "No compatible subroutine" errors.

In general you're better off looking at http://spec.pugscode.org/ for
more updated synopses, but in regard to introspection, the APIs aren't
well specced yet.

> Also, I'm having trouble with problem 7 in
> http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html
> or http://tinyurl.com/tt9e7.  Basically, it's flattening nested lists
> and I'm embarrassed to admit that I can't figure this out in Perl6. 
> Thoughts?  I've been reading synopses and grepping through Pugs, but to
> no avail.

L<S04/"The do-once loop"/"A variant of do is gather"> stipulates the
results of a gather are flattened to a lazy list. I'm not sure how far
that flattenning goes, but one of these should do the trick, I think
(Pugs does not yet implement gather/take):

    sub flatten1 (@list) {
        gather for @list {
            take $_;
        }
    }

    sub flatten2 (@list) {
        gather for @list {
            take $_.does("List") ?? flatten2 $_ !! $_;
        }
    }


-- 
Gaal Yahas <[EMAIL PROTECTED]>
http://gaal.livejournal.com/

Reply via email to