diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index d72b9c0..a9e9008 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -15690,6 +15690,17 @@ The function containsVars tests whether term t contains a * variable. \end{chunk} +\defun{isPatternVar}{isPatternVar} +\begin{chunk}{defun isPatternVar} +(defun |isPatternVar| (v) + (and (identp v) + (member v + '(** *1 *2 *3 *4 *5 *6 *7 *8 *9 *10 *11 *12 *13 *14 *15 + *16 *17 *18 *19 *20)) + t)) + +\end{chunk} + \defun{containsVars1}{containsVars1} The function containsVars1 tests whether term t contains a * variable. This is a recursive version, which works on a list. @@ -44727,6 +44738,7 @@ This needs to work off the internal exposure list, not the file. \getchunk{defun isListOfIdentifiers} \getchunk{defun isListOfIdentifiersOrStrings} \getchunk{defun isPartialMode} +\getchunk{defun isPatternVar} \getchunk{defun isSharpVar} \getchunk{defun isSharpVarWithNum} \getchunk{defun isSubForRedundantMapName} diff --git a/changelog b/changelog index d1c602f..6456484 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,7 @@ +20130314 tpd src/axiom-website/patches.html 20130314.05.tpd.patch +20130314 tpd src/interp/i-funsel.lisp remove functions +20130314 tpd src/interp/g-util.lisp remove functions +20130314 tpd books/bookvol5 treeshake interpreter code 20130314 tpd src/axiom-website/patches.html 20130314.04.jzc.patch 20130314 jzc books/bookvol1 fix typo 20130314 jzc books/bookvol0 fix typo diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 84d0e8b..2eee39e 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4037,5 +4037,7 @@ readme add Jia Zhao Cong changlog. fix jzc email address 20130314.04.jzc.patch books/bookvol0, books/bookvol1 fix typo +20130314.05.tpd.patch +books/bookvol5 treeshake interpreter code diff --git a/src/interp/g-util.lisp.pamphlet b/src/interp/g-util.lisp.pamphlet index 71c4655..e542b8f 100644 --- a/src/interp/g-util.lisp.pamphlet +++ b/src/interp/g-util.lisp.pamphlet @@ -452,18 +452,6 @@ (UNIONQ (|listOfPatternIds| (CAR |x|)) (|listOfPatternIds| (CDR |x|)))))) -;isPatternVar v == -; -- a pattern variable consists of a star followed by a star or digit(s) -; IDENTP(v) and MEMQ(v,'(_*_* _*1 _*2 _*3 _*4 _*5 _*6 _*7 _*8 _*9 _*10 -; _*11 _*12 _*13 _*14 _*15 _*16 _*17 _*18 _*19 _*20)) and true - -(DEFUN |isPatternVar| (|v|) - (AND (IDENTP |v|) - (member |v| - '(** *1 *2 *3 *4 *5 *6 *7 *8 *9 *10 *11 *12 *13 *14 *15 - *16 *17 *18 *19 *20)) - 'T)) - ;removeZeroOne x == ; -- replace all occurrences of (Zero) and (One) with ; -- 0 and 1 diff --git a/src/interp/i-funsel.lisp.pamphlet b/src/interp/i-funsel.lisp.pamphlet index b5cd117..05ddba6 100644 --- a/src/interp/i-funsel.lisp.pamphlet +++ b/src/interp/i-funsel.lisp.pamphlet @@ -5131,35 +5131,6 @@ the types A and B themselves are not sorted by preference. (|prefix2String| (CAR |sig|)))))))))) (|sayMSG| " ")))))) -;containsVars(t) == -; -- tests whether term t contains a * variable -; atom t => isPatternVar t -; containsVars1(t) - -(defun |containsVars| (arg) - (if (atom arg) - (|isPatternVar| arg) - (|containsVars1| arg))) - -;containsVars1(t) == -; -- recursive version, which works on a list -; [t1,:t2]:= t -; atom t1 => -; isPatternVar t1 or -; atom t2 => isPatternVar t2 -; containsVars1(t2) -; containsVars1(t1) or -; atom t2 => isPatternVar t2 -; containsVars1(t2) - -(defun |containsVars1| (arg) - (let ((t1 (car arg)) (t2 (cdr arg))) - (if (atom t1) - (or (|isPatternVar| t1) - (if (atom t2) (|isPatternVar| t2) (|containsVars1| t2))) - (or (|containsVars1| t1) - (if (atom t2) (|isPatternVar| t2) (|containsVars1| t2)))))) - ;getSymbolType var == ;-- var is a pattern variable ; p:= ASSQ(var,$SymbolType) => CDR p @@ -5177,35 +5148,6 @@ the types A and B themselves are not sorted by preference. (setq |$SymbolType| (cons (cons var tmp) |$SymbolType|)) tmp)))) -;isEqualOrSubDomain(d1,d2) == -; -- last 2 parts are for tagged unions (hack for now, RSS) -; (d1=d2) or isSubDomain(d1,d2) or -; (atom(d1) and ((d2 is ['Variable,=d1]) or (d2 is [=d1]))) -; or (atom(d2) and ((d1 is ['Variable,=d2]) or (d1 is [=d2]))) - -(DEFUN |isEqualOrSubDomain| (|d1| |d2|) - (PROG (|ISTMP#1|) - (RETURN - (OR (BOOT-EQUAL |d1| |d2|) (|isSubDomain| |d1| |d2|) - (AND (ATOM |d1|) - (OR (AND (CONSP |d2|) (EQ (QCAR |d2|) '|Variable|) - (PROGN - (setq |ISTMP#1| (QCDR |d2|)) - (AND (CONSP |ISTMP#1|) - (EQ (QCDR |ISTMP#1|) NIL) - (EQUAL (QCAR |ISTMP#1|) |d1|)))) - (AND (CONSP |d2|) (EQ (QCDR |d2|) NIL) - (EQUAL (QCAR |d2|) |d1|)))) - (AND (ATOM |d2|) - (OR (AND (CONSP |d1|) (EQ (QCAR |d1|) '|Variable|) - (PROGN - (setq |ISTMP#1| (QCDR |d1|)) - (AND (CONSP |ISTMP#1|) - (EQ (QCDR |ISTMP#1|) NIL) - (EQUAL (QCAR |ISTMP#1|) |d2|)))) - (AND (CONSP |d1|) (EQ (QCDR |d1|) NIL) - (EQUAL (QCAR |d1|) |d2|)))))))) - ;defaultTypeForCategory(cat, SL) == ; -- this function returns a domain belonging to cat ; -- note that it is important to note that in some contexts one