The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

FP::Abstract::Show - equality protocol

SYNOPSIS

 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))";

DESCRIPTION

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).

TODO

Handle circular data structures.

Pretty-printing

Declare that non-pretty-printing show must only print one line?

Cut-offs at configurable size

Configuration for whether to force promises

SEE ALSO

FP::Show

NOTE

This is alpha software! Read the package README.