version 1.2, 2000/07/31 01:21:41 |
version 1.3, 2000/12/10 09:34:28 |
|
|
%% $OpenXM: OpenXM/src/k097/lib/minimal/k0-cohom.sm1,v 1.1 2000/05/03 06:42:07 takayama Exp $ |
%% $OpenXM: OpenXM/src/k097/lib/minimal/k0-cohom.sm1,v 1.2 2000/07/31 01:21:41 takayama Exp $ |
|
|
%% These macros should be moved to dr.sm1 with usages. |
|
/define_ring_variables { |
|
[/in-define_ring_variables /v /p /v0] pushVariables |
|
[ |
|
/v getVariableNames def |
|
/v0 v def |
|
v { dup /p set (/) 2 1 roll ( $) p ($. def ) } map cat |
|
/v set |
|
% v message |
|
[(parse) v] extension |
|
] pop |
|
popVariables |
|
} def |
|
[(define_ring_variables) |
|
[(It binds a variable <<a>> in the current ring to the sm1 variable <<a>>.) |
|
(For example, if x is a variable in the current ring, it defines the sm1) |
|
(variable x by /x (x) def) |
|
]] putUsages |
|
|
|
/boundp { |
|
/arg1 set |
|
[/a /ans] pushVariables |
|
[ |
|
/a arg1 def |
|
[(parse) [(/) a ( load tag 0 eq { /ans 0 def } ) |
|
( { /ans 1 def } ifelse )] cat ] extension |
|
/arg1 ans def |
|
] pop |
|
popVariables |
|
arg1 |
|
} def |
|
[(boundp) |
|
[( a boundp b) |
|
(string a, b is 0 or 1.) |
|
(If the variable named << a >> is bounded to a value,) |
|
(it returns 1 else it returns 0.) |
|
$Example: (hoge) boundp ::$ |
|
]] putUsages |
|
|
|
% w_to_vec in dr.sm1 should be replaced by the following. |
% w_to_vec in dr.sm1 should be replaced by the following. |
[(chattr) 0 /w_to_vec] extension |
[(chattr) 0 /w_to_vec] extension |