Acme-Lambda-Expr
view release on metacpan or search on metacpan
lib/Acme/Lambda/Expr/Operators.pm view on Meta::CPAN
493494495496497498499500501502503504505506507508509510511512513514515516517518
my
$operand
=
$self
->operand;
return
sub
{
abs
&{
$operand
} };
}
__PACKAGE__->meta->make_immutable();
package
Acme::Lambda::Expr::Log;
use
Moose;
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;
sub
symbol{
return
q{sqrt}
;
}
lib/Acme/Lambda/Expr/Term.pm view on Meta::CPAN
434445464748495051525354555657585960616263
cmp _str_compare
! _not
neg _negate
~ _complement
cos
_cos
sin
_sin
exp
_exp
abs
_abs
log
_log
sqrt
_sqrt
int
_int
atan2
_atan2
);
sub
compile{
my
(
$self
) =
@_
;
my
(
$pkg
,
$file
,
$line
) =
caller
;
my
$context
=
qq{package $pkg\n#line $line $file\n;}
;
lib/Acme/Lambda/Expr/Term.pm view on Meta::CPAN
182183184185186187188189190191192193194195196197198199200201202}
sub
_sin{
return
Acme::Lambda::Expr::Sin->generate(
@_
);
}
sub
_exp{
return
Acme::Lambda::Expr::Exp->generate(
@_
);
}
sub
_abs{
return
Acme::Lambda::Expr::Abs->generate(
@_
);
}
sub
_log{
return
Acme::Lambda::Expr::Log->generate(
@_
);
}
sub
_sqrt{
return
Acme::Lambda::Expr::Sqrt->generate(
@_
);
}
sub
_int{
return
Acme::Lambda::Expr::Int->generate(
@_
);
}
__PACKAGE__->meta->make_immutable;
tool/operators.pl view on Meta::CPAN
106107108109110111112113114115116117118119120121122123124125126{
my
@uniops
= (
_not
=>
'!'
,
_negate
=>
'neg'
,
_complement
=>
'~'
,
_cos
=>
'cos'
,
_sin
=>
'sin'
,
_exp
=>
'exp'
,
_abs
=>
'abs'
,
_log
=>
'log'
,
_sqrt
=>
'sqrt'
,
_int
=>
'int'
,
);
while
(
my
(
$name
,
$uniop
) =
splice
@uniops
, 0, 2){
my
$class_name
=
'Acme::Lambda::Expr::'
.
join
''
,
map
{
ucfirst
}
split
/_/,
$name
;
if
(
$uniop
eq
'neg'
){
$uniop
=
'-'
;
( run in 0.662 second using v1.01-cache-2.11-cpan-ba35b6b0368 )