|
|
|
last edited 17 years ago by Bill Page |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ||
|
Editor: Bill Page
Time: 2008/04/08 15:38:53 GMT-7 |
||
| Note: FriCAS version | ||
added:
From BillPage Tue Apr 8 15:38:53 -0700 2008
From: Bill Page
Date: Tue, 08 Apr 2008 15:38:53 -0700
Subject: FriCAS version
Message-ID: <20080408153853-0700@axiom-wiki.newsynthesis.org>
SandBoxMyReduceInFriCAS
(1) -> <spad>
)abbrev package MYRED MyReduce
MyReduce(S:Type): with
myred: ((S, S)->S, List S) -> S
== add
-- Waldek's local helper function
((f:(S, S)->S) = (g:(S, S)->S)):Boolean ==
--print(coerceMap2E(f)$Lisp::OutputForm)
--print(coerceMap2E(g)$Lisp::OutputForm)
EQ(f, g)$Lisp
--
import NonNegativeInteger
myred(f:(S, S)->S, x:List S):S ==
if #x>1 then
f(first x, myred(f, rest x))
else if #x=1 then
first x
else
if S has AbelianMonoid then
-- Must force "newGoGet" by applying operations before comparison!
f(0, 0)=(0+0)$S and (f = _+$S) => return 0$S
if S has Monoid then
f(1, 1)=(1*1)$S and (f = _*$S) => return 1$S
error "reducing over an empty list needs the 3 argument form"</spad>
Compiling FriCAS source code from file
/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/4005334095377159465-25px001.spad
using old system compiler.
MYRED abbreviates package MyReduce
------------------------------------------------------------------------
initializing NRLIB MYRED for MyReduce
compiling into NRLIB MYRED
compiling local = : ((S, S) -> S, (S, S) -> S) -> Boolean
MYRED;= is replaced by EQ
Time: 0 SEC.
importing NonNegativeInteger
compiling exported myred : ((S, S) -> S, List S) -> S
****** Domain: S already in scope
augmenting S: (AbelianMonoid)
****** Domain: S already in scope
augmenting S: (Monoid)
Time: 0.01 SEC.
(time taken in buildFunctor: 0)
Time: 0 SEC.
Cumulative Statistics for Constructor MyReduce
Time: 0.02 seconds
finalizing NRLIB MYRED
Processing MyReduce for Browser database:
--->-->MyReduce(constructor): Not documented!!!!
--->-->MyReduce((myred (S (Mapping S S S) (List S)))): Not documented!!!!
--->-->MyReduce(): Missing Description
; compiling file "/var/aw/var/LatexWiki/MYRED.NRLIB/MYRED.lsp" (written 17 MAR 2026 09:03:08 AM):
; wrote /var/aw/var/LatexWiki/MYRED.NRLIB/MYRED.fasl
; compilation finished in 0:00:00.012
------------------------------------------------------------------------
MyReduce is now explicitly exposed in frame initial
MyReduce will be automatically loaded when needed from
/var/aw/var/LatexWiki/MYRED.NRLIB/MYREDmyred(+,[1, 2, 3, 4])
| (1) |
myred(+,[]$List Integer)
| (2) |
myred(*,[1, 2, 3, 4])
| (3) |
myred(*,[]$List Integer)
| (4) |