version 1.3, 2000/02/02 09:07:59 |
version 1.5, 2000/12/10 03:33:46 |
|
|
% $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.2 1999/11/08 00:16:05 takayama Exp $ |
% $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.4 2000/06/15 07:33:29 takayama Exp $ |
%% dr.sm1 (Define Ring) 1994/9/25, 26 |
%% dr.sm1 (Define Ring) 1994/9/25, 26 |
%% This file is error clean. |
%% This file is error clean. |
|
|
@@@.quiet { } |
@@@.quiet { } |
{ (macro package : dr.sm1, 9/26,1995 --- Version 2/2, 2000. ) message } ifelse |
{ (macro package : dr.sm1, 9/26,1995 --- Version 12/10, 2000. ) message } ifelse |
|
|
/ctrlC-hook { |
/ctrlC-hook { |
%%% define your own routing in case of error. |
%%% define your own routing in case of error. |
Line 3532 $ [ff ff] fromVectors :: $ |
|
Line 3532 $ [ff ff] fromVectors :: $ |
|
[(nl) |
[(nl) |
[(nl is the newline character.) |
[(nl is the newline character.) |
$Example: [(You can break line) nl (here.)] cat message$ |
$Example: [(You can break line) nl (here.)] cat message$ |
|
]] putUsages |
|
|
|
/to_int { |
|
/arg1 set |
|
[/to-int /ob /ans] pushVariables |
|
[ |
|
/ob arg1 def |
|
/ans ob def |
|
ob isArray { |
|
ob {to_int} map /ans set |
|
/LLL.to_int goto |
|
} { } ifelse |
|
ob isInteger { |
|
ob (universalNumber) dc /ans set |
|
/LLL.to_int goto |
|
} { } ifelse |
|
/LLL.to_int |
|
/arg1 ans def |
|
] pop |
|
popVariables |
|
arg1 |
|
} def |
|
[(to_int) |
|
[(obj to_int obj2) |
|
(All integers in obj are changed to universalNumber.) |
|
(Example: /ff [1 2 [(hello) (0).]] def ff { tag } map ::) |
|
( ff to_int { tag } map :: ) |
|
]] putUsages |
|
|
|
/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 |
]] putUsages |
|
|
; |
; |