version 1.14, 2003/12/21 17:36:29 |
version 1.17, 2004/07/10 05:50:57 |
|
|
@comment $OpenXM: OpenXM/src/asir-doc/parts/asir.texi,v 1.13 2003/12/20 13:38:44 ohara Exp $ |
@comment $OpenXM: OpenXM/src/asir-doc/parts/asir.texi,v 1.16 2004/07/04 00:16:43 takayama Exp $ |
\BJP |
\BJP |
@node $B%f!<%68@8l(B Asir,,, Top |
@node $B%f!<%68@8l(B Asir,,, Top |
@chapter $B%f!<%68@8l(B Asir |
@chapter $B%f!<%68@8l(B Asir |
Line 1451 After @samp{|} one can append any number of options se |
|
Line 1451 After @samp{|} one can append any number of options se |
|
[100] xxx(1,2,x^2-1,[1,2,3]|proc=1,index=5); |
[100] xxx(1,2,x^2-1,[1,2,3]|proc=1,index=5); |
@end example |
@end example |
|
|
|
\BJP |
|
$B$5$i$K(B, $B%*%W%7%g%s$r(B @code{key1=value1,key2=value2,...} $B$N$h$&$K(B |
|
@samp{,} $B$G6h@Z$C$FEO$9Be$o$j$K(B, $BFCJL$J%-!<%o!<%I(B @code{option_list} |
|
$B$H%*%W%7%g%s%j%9%H(B @code{[["key1",value1],["key2",value2],...]} |
|
$B$rMQ$$$FEO$9$3$H$b2DG=$G$"$k(B. |
|
\E |
|
\BEG |
|
Optinal arguments may be given as a list |
|
with the key word @code{option_list} |
|
as |
|
@code{option_list=[["key1",value1],["key2",value2],...]}. |
|
It is equivalent to pass the optional arguments as |
|
@code{key1=value1,key2=value2,...}. |
|
\E |
|
|
|
@example |
|
[101] dp_gr_main([x^2+y^2-1,x*y-1]|option_list=[["v",[x,y]],["order",[[x,5,y,1]]]]); |
|
@end example |
|
|
\BJP |
\BJP |
|
$BFC$K(B, $B0z?t$J$7$N(B @code{getopt()} $B$O%*%W%7%g%s%j%9%H$rJV$9$N$G(B, |
|
$B%*%W%7%g%s$r$H$k4X?t$+$i(B, $B%*%W%7%g%s$r$H$k4X?t$r8F$S=P$9$H$-$K$OM-MQ$G$"$k(B. |
|
\E |
|
\BEG |
|
Since @code{getopt()} returns an option list, |
|
the optional argument @code{option_list=...} is useful when |
|
we call functions with optional arguments from |
|
a function with optional arguments to pass |
|
the all optional parameters. |
|
\E |
|
|
|
@example |
|
% cat foo.rr |
|
def foo(F) |
|
@{ |
|
OPTS=getopt(); |
|
return factor(F|option_list=OPTS); |
|
@} |
|
@end example |
|
|
|
@example |
|
[3] load("foo.rr")$ |
|
[4] foo(x^5-1|mod=11); |
|
[[1,1],[x+6,1],[x+2,1],[x+10,1],[x+7,1],[x+8,1]] |
|
@end example |
|
|
|
\BJP |
@node $B%b%8%e!<%k(B,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B |
@node $B%b%8%e!<%k(B,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B |
@subsection $B%b%8%e!<%k(B |
@subsection $B%b%8%e!<%k(B |
\E |
\E |
|
|
module stack; |
module stack; |
/* The body of the module stack */ |
/* The body of the module stack */ |
endmodule; |
endmodule; |
|
@end example |
|
|
|
\BJP |
|
$B%b%8%e!<%k$NCf$+$i%H%C%W%l%Y%k$GDj5A$5$l$F$$$k4X?t$r8F$V$K$O(B, |
|
$B2<$NNc$N$h$&$K(B @code{::} $B$rMQ$$$k(B. |
|
\E |
|
\BEG |
|
In order to call functions defined in the top level from the inside |
|
of a module, we use @code{::} as in the example below. |
|
\E |
|
@example |
|
def afo() @{ |
|
S = "afo, afo"; |
|
return S; |
|
@} |
|
module abc; |
|
localf foo,afo $ |
|
|
|
def foo() @{ |
|
G = ::afo(); |
|
return G; |
|
@} |
|
def afo() @{ |
|
return "afo, afo in abc"; |
|
@} |
|
endmodule; |
|
end$ |
|
|
|
[1200] abc.foo(); |
|
afo, afo |
|
[1201] abc.afo(); |
|
afo, afo in abc |
@end example |
@end example |
|
|
@table @t |
@table @t |