aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/coerce.spad.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra/coerce.spad.pamphlet')
-rw-r--r--src/algebra/coerce.spad.pamphlet125
1 files changed, 125 insertions, 0 deletions
diff --git a/src/algebra/coerce.spad.pamphlet b/src/algebra/coerce.spad.pamphlet
new file mode 100644
index 00000000..3ad352b6
--- /dev/null
+++ b/src/algebra/coerce.spad.pamphlet
@@ -0,0 +1,125 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/algebra coerce.spad}
+\author{Richard Jenks, Manuel Bronstein}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{category TYPE Type}
+<<category TYPE Type>>=
+)abbrev category TYPE Type
+++ The new fundamental Type (keeping Object for 1.5 as well)
+++ Author: Richard Jenks
+++ Date Created: 14 May 1992
+++ Date Last Updated: 14 May 1992
+++ Description: The fundamental Type;
+Type(): Category == with nil
+
+@
+\section{category KOERCE CoercibleTo}
+<<category KOERCE CoercibleTo>>=
+)abbrev category KOERCE CoercibleTo
+++ Category for coerce
+++ Author: Manuel Bronstein
+++ Date Created: ???
+++ Date Last Updated: 14 May 1991
+++ Description:
+++ A is coercible to B means any element of A can automatically be
+++ converted into an element of B by the interpreter.
+CoercibleTo(S:Type): Category == with
+ coerce: % -> S
+ ++ coerce(a) transforms a into an element of S.
+
+@
+\section{category KONVERT ConvertibleTo}
+<<category KONVERT ConvertibleTo>>=
+)abbrev category KONVERT ConvertibleTo
+++ Category for convert
+++ Author: Manuel Bronstein
+++ Date Created: ???
+++ Date Last Updated: 14 May 1991
+++ Description:
+++ A is convertible to B means any element of A
+++ can be converted into an element of B,
+++ but not automatically by the interpreter.
+ConvertibleTo(S:Type): Category == with
+ convert: % -> S
+ ++ convert(a) transforms a into an element of S.
+
+@
+\section{category RETRACT RetractableTo}
+<<category RETRACT RetractableTo>>=
+)abbrev category RETRACT RetractableTo
+++ Category for retract
+++ Author: ???
+++ Date Created: ???
+++ Date Last Updated: 14 May 1991
+++ Description:
+++ A is retractable to B means that some elementsif A can be converted
+++ into elements of B and any element of B can be converted into an
+++ element of A.
+RetractableTo(S: Type): Category == with
+ coerce: S -> %
+ ++ coerce(a) transforms a into an element of %.
+ retractIfCan: % -> Union(S,"failed")
+ ++ retractIfCan(a) transforms a into an element of S if possible.
+ ++ Returns "failed" if a cannot be made into an element of S.
+ retract: % -> S
+ ++ retract(a) transforms a into an element of S if possible.
+ ++ Error: if a cannot be made into an element of S.
+ add
+ retract(s) ==
+ (u:=retractIfCan s) case "failed" => error "not retractable"
+ u
+
+@
+\section{License}
+<<license>>=
+--Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
+--All rights reserved.
+--
+--Redistribution and use in source and binary forms, with or without
+--modification, are permitted provided that the following conditions are
+--met:
+--
+-- - Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+--
+-- - Redistributions in binary form must reproduce the above copyright
+-- notice, this list of conditions and the following disclaimer in
+-- the documentation and/or other materials provided with the
+-- distribution.
+--
+-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the
+-- names of its contributors may be used to endorse or promote products
+-- derived from this software without specific prior written permission.
+--
+--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+--IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+--TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+--PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+--OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+--EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+--PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+--PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+--LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+--NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+@
+<<*>>=
+<<license>>
+
+<<category TYPE Type>>
+<<category KOERCE CoercibleTo>>
+<<category KONVERT ConvertibleTo>>
+<<category RETRACT RetractableTo>>
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}