Much progress, but bad regression in parsing M-Expressions.

This commit is contained in:
Simon Brooke 2023-04-09 20:51:36 +01:00
parent 1dbc57efff
commit cde3d79ff3
No known key found for this signature in database
GPG key ID: A7A4F18D1D4DF987
44 changed files with 451 additions and 347 deletions

View 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]]

View file

@ -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))