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 )