FP::Abstract::Show - data constructor protocol
package FPShowExample::Foo { sub new { my $class = shift; bless [@_], $class } sub FP_Show_show { my ($self, $show) = @_; # $show is for recursive use "FPShowExample::Foo->new(".join(", ", map { $show->($_) } @$self).")" } } use FP::Show; is show(FPShowExample::Foo->new("hey", new FPShowExample::Foo 5+5)), "FPShowExample::Foo->new('hey', FPShowExample::Foo->new(10))";
For an introduction, see FP::Show.
The reason that FP_Show_show is getting a $show argument is to provide for (probably evil, though) context sensitive formatting, but more importantly to hopefully enable to do pretty-printing and cut-off features (this is *alpha* though, see whether this works out).
FP_Show_show
$show
Handle circular data structures.
Pretty-printing -- for this, probably move to returning FP::AST::Perl nodes instead of strings.
Declare that non-pretty-printing show must only print one line?
Cut-offs at configurable size
Configuration for whether to force promises
FP::Show -- functions to access this protocol usefully
FP::Mixin::Utils -- implemented by this protocol
This is alpha software! Read the status section in the package README or on the website.
To install FunctionalPerl, copy and paste the appropriate command in to your terminal.
cpanm
cpanm FunctionalPerl
CPAN shell
perl -MCPAN -e shell install FunctionalPerl
For more information on module installation, please visit the detailed CPAN module installation guide.