Skip to content

Commit d88b17c

Browse files
committed
lis.py: explicit var in first match/case
1 parent 36afc01 commit d88b17c

File tree

3 files changed

+36
-26
lines changed

3 files changed

+36
-26
lines changed

18-context-mngr/lispy/py3.10/lis.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ def lispstr(exp: object) -> str:
142142
def evaluate(x: Expression, env: Environment) -> Any:
143143
"Evaluate an expression in an environment."
144144
match x:
145-
case str(): # variable reference
146-
return env[x]
145+
case str(var): # variable reference
146+
return env[var]
147147
case literal if not isinstance(x, list): # constant literal
148148
return literal
149149
case ['quote', exp]: # (quote exp)

18-context-mngr/lispy/py3.10/lis_test.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,35 @@
1414
("(+ (* 2 100) (* 1 10))", 210),
1515
("(if (> 6 5) (+ 1 1) (+ 2 2))", 2),
1616
("(if (< 6 5) (+ 1 1) (+ 2 2))", 4),
17-
("(define x 3)", None), ("x", 3), ("(+ x x)", 6),
17+
("(define x 3)", None),
18+
("x", 3),
19+
("(+ x x)", 6),
1820
("((lambda (x) (+ x x)) 5)", 10),
19-
("(define twice (lambda (x) (* 2 x)))", None), ("(twice 5)", 10),
21+
("(define twice (lambda (x) (* 2 x)))", None),
22+
("(twice 5)", 10),
2023
("(define compose (lambda (f g) (lambda (x) (f (g x)))))", None),
2124
("((compose list twice) 5)", [10]),
2225
("(define repeat (lambda (f) (compose f f)))", None),
23-
("((repeat twice) 5)", 20), ("((repeat (repeat twice)) 5)", 80),
26+
("((repeat twice) 5)", 20),
27+
("((repeat (repeat twice)) 5)", 80),
2428
("(define fact (lambda (n) (if (<= n 1) 1 (* n (fact (- n 1))))))", None),
2529
("(fact 3)", 6),
2630
("(fact 50)", 30414093201713378043612608166064768844377641568960512000000000000),
2731
("(define abs (lambda (n) ((if (> n 0) + -) 0 n)))", None),
2832
("(list (abs -3) (abs 0) (abs 3))", [3, 0, 3]),
2933
("""(define combine (lambda (f)
30-
(lambda (x y)
31-
(if (null? x) (quote ())
32-
(f (list (car x) (car y))
33-
((combine f) (cdr x) (cdr y)))))))""", None),
34+
(lambda (x y)
35+
(if (null? x) (quote ())
36+
(f (list (car x) (car y))
37+
((combine f) (cdr x) (cdr y)))))))""", None),
3438
("(define zip (combine cons))", None),
3539
("(zip (list 1 2 3 4) (list 5 6 7 8))", [[1, 5], [2, 6], [3, 7], [4, 8]]),
36-
("""(define riff-shuffle (lambda (deck) (begin
37-
(define take (lambda (n seq) (if (<= n 0) (quote ()) (cons (car seq) (take (- n 1) (cdr seq))))))
38-
(define drop (lambda (n seq) (if (<= n 0) seq (drop (- n 1) (cdr seq)))))
39-
(define mid (lambda (seq) (/ (length seq) 2)))
40-
((combine append) (take (mid deck) deck) (drop (mid deck) deck)))))""", None),
40+
("""(define riff-shuffle (lambda (deck)
41+
(begin
42+
(define take (lambda (n seq) (if (<= n 0) (quote ()) (cons (car seq) (take (- n 1) (cdr seq))))))
43+
(define drop (lambda (n seq) (if (<= n 0) seq (drop (- n 1) (cdr seq)))))
44+
(define mid (lambda (seq) (/ (length seq) 2)))
45+
((combine append) (take (mid deck) deck) (drop (mid deck) deck)))))""", None),
4146
("(riff-shuffle (list 1 2 3 4 5 6 7 8))", [1, 5, 2, 6, 3, 7, 4, 8]),
4247
("((repeat riff-shuffle) (list 1 2 3 4 5 6 7 8))", [1, 3, 5, 7, 2, 4, 6, 8]),
4348
("(riff-shuffle (riff-shuffle (riff-shuffle (list 1 2 3 4 5 6 7 8))))", [1,2,3,4,5,6,7,8]),

18-context-mngr/lispy/py3.9/lis_test.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,35 @@
1414
("(+ (* 2 100) (* 1 10))", 210),
1515
("(if (> 6 5) (+ 1 1) (+ 2 2))", 2),
1616
("(if (< 6 5) (+ 1 1) (+ 2 2))", 4),
17-
("(define x 3)", None), ("x", 3), ("(+ x x)", 6),
17+
("(define x 3)", None),
18+
("x", 3),
19+
("(+ x x)", 6),
1820
("((lambda (x) (+ x x)) 5)", 10),
19-
("(define twice (lambda (x) (* 2 x)))", None), ("(twice 5)", 10),
21+
("(define twice (lambda (x) (* 2 x)))", None),
22+
("(twice 5)", 10),
2023
("(define compose (lambda (f g) (lambda (x) (f (g x)))))", None),
2124
("((compose list twice) 5)", [10]),
2225
("(define repeat (lambda (f) (compose f f)))", None),
23-
("((repeat twice) 5)", 20), ("((repeat (repeat twice)) 5)", 80),
26+
("((repeat twice) 5)", 20),
27+
("((repeat (repeat twice)) 5)", 80),
2428
("(define fact (lambda (n) (if (<= n 1) 1 (* n (fact (- n 1))))))", None),
2529
("(fact 3)", 6),
2630
("(fact 50)", 30414093201713378043612608166064768844377641568960512000000000000),
2731
("(define abs (lambda (n) ((if (> n 0) + -) 0 n)))", None),
2832
("(list (abs -3) (abs 0) (abs 3))", [3, 0, 3]),
2933
("""(define combine (lambda (f)
30-
(lambda (x y)
31-
(if (null? x) (quote ())
32-
(f (list (car x) (car y))
33-
((combine f) (cdr x) (cdr y)))))))""", None),
34+
(lambda (x y)
35+
(if (null? x) (quote ())
36+
(f (list (car x) (car y))
37+
((combine f) (cdr x) (cdr y)))))))""", None),
3438
("(define zip (combine cons))", None),
3539
("(zip (list 1 2 3 4) (list 5 6 7 8))", [[1, 5], [2, 6], [3, 7], [4, 8]]),
36-
("""(define riff-shuffle (lambda (deck) (begin
37-
(define take (lambda (n seq) (if (<= n 0) (quote ()) (cons (car seq) (take (- n 1) (cdr seq))))))
38-
(define drop (lambda (n seq) (if (<= n 0) seq (drop (- n 1) (cdr seq)))))
39-
(define mid (lambda (seq) (/ (length seq) 2)))
40-
((combine append) (take (mid deck) deck) (drop (mid deck) deck)))))""", None),
40+
("""(define riff-shuffle (lambda (deck)
41+
(begin
42+
(define take (lambda (n seq) (if (<= n 0) (quote ()) (cons (car seq) (take (- n 1) (cdr seq))))))
43+
(define drop (lambda (n seq) (if (<= n 0) seq (drop (- n 1) (cdr seq)))))
44+
(define mid (lambda (seq) (/ (length seq) 2)))
45+
((combine append) (take (mid deck) deck) (drop (mid deck) deck)))))""", None),
4146
("(riff-shuffle (list 1 2 3 4 5 6 7 8))", [1, 5, 2, 6, 3, 7, 4, 8]),
4247
("((repeat riff-shuffle) (list 1 2 3 4 5 6 7 8))", [1, 3, 5, 7, 2, 4, 6, 8]),
4348
("(riff-shuffle (riff-shuffle (riff-shuffle (list 1 2 3 4 5 6 7 8))))", [1,2,3,4,5,6,7,8]),

0 commit comments

Comments
 (0)