Acme-Lambda-Expr
view release on metacpan or search on metacpan
lib/Acme/Lambda/Expr/Operators.pm view on Meta::CPAN
use Moose;
extends qw(Acme::Lambda::Expr::UniOp);
sub symbol{
return q{cos};
}
sub codify{
my $self = shift;
my $operand = $self->operand;
return sub{ cos &{$operand} };
}
__PACKAGE__->meta->make_immutable();
package Acme::Lambda::Expr::Sin;
use Moose;
extends qw(Acme::Lambda::Expr::UniOp);
sub symbol{
return q{sin};
}
sub codify{
my $self = shift;
my $operand = $self->operand;
return sub{ sin &{$operand} };
}
__PACKAGE__->meta->make_immutable();
package Acme::Lambda::Expr::Exp;
use Moose;
extends qw(Acme::Lambda::Expr::UniOp);
sub symbol{
return q{exp};
}
sub codify{
my $self = shift;
my $operand = $self->operand;
return sub{ exp &{$operand} };
}
__PACKAGE__->meta->make_immutable();
package Acme::Lambda::Expr::Abs;
use Moose;
extends qw(Acme::Lambda::Expr::UniOp);
sub symbol{
return q{abs};
}
sub codify{
my $self = shift;
my $operand = $self->operand;
return sub{ abs &{$operand} };
}
__PACKAGE__->meta->make_immutable();
package Acme::Lambda::Expr::Log;
use Moose;
extends qw(Acme::Lambda::Expr::UniOp);
sub symbol{
return q{log};
}
sub codify{
my $self = shift;
my $operand = $self->operand;
return sub{ log &{$operand} };
}
__PACKAGE__->meta->make_immutable();
package Acme::Lambda::Expr::Sqrt;
use Moose;
extends qw(Acme::Lambda::Expr::UniOp);
sub symbol{
return q{sqrt};
}
sub codify{
my $self = shift;
my $operand = $self->operand;
return sub{ sqrt &{$operand} };
}
__PACKAGE__->meta->make_immutable();
package Acme::Lambda::Expr::Int;
use Moose;
extends qw(Acme::Lambda::Expr::UniOp);
sub symbol{
return q{int};
}
sub codify{
my $self = shift;
my $operand = $self->operand;
return sub{ int &{$operand} };
}
__PACKAGE__->meta->make_immutable();
( run in 0.703 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )