Much progress, but bad regression in parsing M-Expressions.
This commit is contained in:
parent
1dbc57efff
commit
cde3d79ff3
44 changed files with 451 additions and 347 deletions
|
|
@ -5,10 +5,24 @@ body {
|
|||
background-color: black;
|
||||
}
|
||||
|
||||
a {
|
||||
color: lime;
|
||||
}
|
||||
|
||||
a:active, a:hover {
|
||||
color: yellowgreen;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: green;
|
||||
}
|
||||
|
||||
pre, code {
|
||||
font-family: Monaco, DejaVu Sans Mono, Consolas, monospace;
|
||||
font-size: 9pt;
|
||||
margin: 15px 0;
|
||||
color: limegreen;
|
||||
background-color: #111;
|
||||
}
|
||||
|
||||
h1 {
|
||||
|
|
@ -45,7 +59,7 @@ h5.license {
|
|||
left: 0;
|
||||
right: 0;
|
||||
height: 22px;
|
||||
color: #f5f5f5;
|
||||
color: limegreen;
|
||||
padding: 5px 7px;
|
||||
}
|
||||
|
||||
|
|
@ -67,14 +81,14 @@ h5.license {
|
|||
}
|
||||
|
||||
.sidebar.primary {
|
||||
background: #404040;
|
||||
background: #080808;
|
||||
border-right: solid 1px forestgreen;
|
||||
left: 0;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.sidebar.secondary {
|
||||
background: #202020;
|
||||
background: #111;
|
||||
border-right: solid 1px darkgreen;
|
||||
left: 251px;
|
||||
width: 200px;
|
||||
|
|
@ -93,7 +107,7 @@ h5.license {
|
|||
}
|
||||
|
||||
#header {
|
||||
background: #3f3f3f;
|
||||
background: #080808;
|
||||
box-shadow: 0 0 8px rgba(192, 255, 192, 0.4);
|
||||
z-index: 100;
|
||||
}
|
||||
|
|
@ -119,14 +133,6 @@ h5.license {
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
||||
.sidebar a {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#header h2 {
|
||||
float: right;
|
||||
font-size: 9pt;
|
||||
|
|
@ -399,7 +405,7 @@ h4.deprecated {
|
|||
|
||||
.type-sig {
|
||||
clear: both;
|
||||
color: #088;
|
||||
color: goldenrod;
|
||||
}
|
||||
|
||||
.type-sig pre {
|
||||
|
|
@ -409,8 +415,8 @@ h4.deprecated {
|
|||
|
||||
.usage code {
|
||||
display: block;
|
||||
color: #008;
|
||||
margin: 2px 0;
|
||||
color: limegreen;
|
||||
}
|
||||
|
||||
.usage code:first-child {
|
||||
|
|
@ -483,7 +489,7 @@ p {
|
|||
}
|
||||
|
||||
.markdown code:not(.hljs), .src-link a {
|
||||
background: darkgray;
|
||||
background: #111;
|
||||
}
|
||||
|
||||
pre.deps {
|
||||
|
|
@ -492,13 +498,13 @@ pre.deps {
|
|||
border: 1px solid lime;
|
||||
border-radius: 2px;
|
||||
padding: 10px;
|
||||
background-color: #404040;
|
||||
background-color: #111;
|
||||
}
|
||||
|
||||
.markdown hr {
|
||||
border-style: solid;
|
||||
border-top: none;
|
||||
color: #ccc;
|
||||
color: goldenrod;
|
||||
}
|
||||
|
||||
.doc ul, .doc ol {
|
||||
|
|
@ -511,12 +517,12 @@ pre.deps {
|
|||
}
|
||||
|
||||
.doc table td, .doc table th {
|
||||
border: 1px solid #dddddd;
|
||||
border: 1px solid goldenrod;
|
||||
padding: 4px 6px;
|
||||
}
|
||||
|
||||
.doc table th {
|
||||
background: #f2f2f2;
|
||||
background: #111;
|
||||
}
|
||||
|
||||
.doc dl {
|
||||
|
|
@ -527,7 +533,7 @@ pre.deps {
|
|||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: 3px 0;
|
||||
border-bottom: 1px solid #ddd;
|
||||
border-bottom: 1px solid goldenrod;
|
||||
}
|
||||
|
||||
.doc dl dd {
|
||||
|
|
@ -536,7 +542,7 @@ pre.deps {
|
|||
}
|
||||
|
||||
.doc abbr {
|
||||
border-bottom: 1px dotted #333;
|
||||
border-bottom: 1px dotted goldenrod;
|
||||
font-variant: none;
|
||||
cursor: help;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,12 +91,12 @@
|
|||
(GENSYM 32767 SUBR (BEOWULF HOST GENSYM))
|
||||
(GET
|
||||
32767
|
||||
EXPR
|
||||
(LAMBDA
|
||||
(X Y)
|
||||
(COND
|
||||
((NULL X) NIL)
|
||||
((EQ (CAR X) Y) (CAR (CDR X))) (T (GET (CDR X) Y))))
|
||||
;; EXPR
|
||||
;; (LAMBDA
|
||||
;; (X Y)
|
||||
;; (COND
|
||||
;; ((NULL X) NIL)
|
||||
;; ((EQ (CAR X) Y) (CAR (CDR X))) (T (GET (CDR X) Y))))
|
||||
SUBR (BEOWULF HOST GET))
|
||||
(GREATERP 32767 SUBR (BEOWULF HOST GREATERP))
|
||||
(INTEROP 32767 SUBR (BEOWULF INTEROP INTEROP))
|
||||
|
|
@ -138,6 +138,7 @@
|
|||
(NUMBERP 32767 SUBR (BEOWULF HOST NUMBERP))
|
||||
(OBLIST 32767 SUBR (BEOWULF HOST OBLIST))
|
||||
(ONEP 32767 EXPR (LAMBDA (X) (EQ X 1)))
|
||||
(OR 32767 SUBR (BEOWULF HOST OR))
|
||||
(PAIR
|
||||
32767
|
||||
EXPR
|
||||
|
|
@ -185,6 +186,11 @@
|
|||
(LAMBDA (N X) (COND ((EQ N 0) NIL) (T (CONS X (REPEAT (SUB1 N) X))))))
|
||||
(RPLACA 32767 SUBR (BEOWULF HOST RPLACA))
|
||||
(RPLACD 32767 SUBR (BEOWULF HOST RPLACD))
|
||||
(SEARCH 32767 EXPR
|
||||
(LAMBDA (X P F U)
|
||||
(COND ((NULL X) (U X))
|
||||
((P X) (F X))
|
||||
((QUOTE T) (SEARCH (CDR X) P F U)))))
|
||||
(SET 32767 SUBR (BEOWULF HOST SET))
|
||||
(SUB1 32767 EXPR (LAMBDA (N) (DIFFERENCE N 1)) SUBR (BEOWULF HOST SUB1))
|
||||
(SUB2
|
||||
|
|
@ -195,7 +201,17 @@
|
|||
(COND
|
||||
((NULL A) Z) ((EQ (CAAR A) Z) (CDAR A)) (T (SUB2 (CDAR A) Z)))))
|
||||
(SUBLIS
|
||||
32767 EXPR (LAMBDA (A Y) (COND ((ATOM Y) (SUB2 A Y)) (T (CONS)))))
|
||||
32767 EXPR
|
||||
(LAMBDA (X Y)
|
||||
(COND ((NULL X) Y)
|
||||
((NULL Y) Y)
|
||||
((QUOTE T) (SEARCH X
|
||||
(LAMBDA (J) (EQUAL Y (CAAR J)))
|
||||
(LAMBDA (J) (CDAR J))
|
||||
(LAMBDA (J) (COND ((ATOM Y) Y)
|
||||
((QUOTE T) (CONS
|
||||
(SUBLIS X (CAR Y))
|
||||
(SUBLIS X (CDR Y)))))))))))
|
||||
(SUBST
|
||||
32767
|
||||
EXPR
|
||||
|
|
|
|||
5
resources/mexpr/search.mexpr.lsp
Normal file
5
resources/mexpr/search.mexpr.lsp
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# page 63
|
||||
|
||||
search[x; p; f; u] = [null[x] -> u[x];
|
||||
p[x] -> f[x];
|
||||
T -> search[cdr[x]; p; f; u]]
|
||||
|
|
@ -7,4 +7,19 @@ sub2[a; z] = [null[a] -> z;
|
|||
T -> sub2[cdar[a]; z]]
|
||||
|
||||
sublis[a; y] = [atom[y] -> sub2[a; y];
|
||||
T -> cons[]]
|
||||
T -> cons[sublis[a; car[y]];
|
||||
sublis[a; cdr[y]]]]
|
||||
|
||||
;; this is the version from page 61
|
||||
|
||||
sublis[x;y] = [null[x] -> y;
|
||||
null[y] -> y;
|
||||
T -> search[x;
|
||||
λ[[j]; equal[y; caar[j]]];
|
||||
λ[[j]; cdar[j]];
|
||||
λ[[j]; [atom[y] -> y;
|
||||
T -> cons[sublis[x; car[y]];
|
||||
sublis[x; cdr[y]]]]]]]
|
||||
|
||||
;; the test for this is:
|
||||
;; (SUBLIS '((X . SHAKESPEARE) (Y . (THE TEMPEST))) '(X WROTE Y))
|
||||
Loading…
Add table
Add a link
Reference in a new issue