/src/test/run-pass$ ~/pres/racket/bin/raco fmt -i **/*.scm
parent
2338430e0a
commit
a7e44f432c
|
@ -1,15 +1,19 @@
|
|||
#lang scheme
|
||||
|
||||
(define (displayln x) (newline) (display x))
|
||||
(define (displayln x)
|
||||
(newline)
|
||||
(display x))
|
||||
|
||||
(define (ambig1 x) (lambda (x) x))
|
||||
(define (ambig1 x)
|
||||
(lambda (x) x))
|
||||
|
||||
(displayln ((ambig1 13) 42))
|
||||
|
||||
(define (ambig2 a)
|
||||
(displayln a)
|
||||
(define a- a)
|
||||
(lambda (b) (displayln b)
|
||||
(lambda (b)
|
||||
(displayln b)
|
||||
(lambda (a)
|
||||
(displayln a)
|
||||
(displayln b)
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
#lang scheme
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
|
||||
(define (const x) (lambda () x))
|
||||
(define (const x)
|
||||
(lambda () x))
|
||||
|
||||
(define two-thunk (const 2))
|
||||
|
||||
(displayln two-thunk)
|
||||
(displayln (two-thunk))
|
||||
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
(define f #f)
|
||||
(define g #f)
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
((lambda ()
|
||||
(define local 1)
|
||||
|
|
|
@ -2,15 +2,16 @@
|
|||
|
||||
(define a 0)
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
((lambda ()
|
||||
(define (assign) (set! a 1))
|
||||
(define (assign)
|
||||
(set! a 1))
|
||||
|
||||
(define a 2)
|
||||
(assign)
|
||||
(displayln a)
|
||||
))
|
||||
(displayln a)))
|
||||
|
||||
(displayln a)
|
|
@ -1,7 +1,10 @@
|
|||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
(define (make-print x)
|
||||
(define (print) (displayln x))
|
||||
(define (print)
|
||||
(displayln x))
|
||||
print)
|
||||
|
||||
(define print-2 (make-print 2))
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
(define f #f)
|
||||
|
||||
(define (foo param)
|
||||
(define (f_) (display param))
|
||||
(define (f_)
|
||||
(display param))
|
||||
(set! f f_))
|
||||
|
||||
(foo 77)
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
((lambda ()
|
||||
(define a 1)
|
||||
|
||||
(if #f
|
||||
(lambda () a)
|
||||
0
|
||||
)
|
||||
))
|
||||
(if #f (lambda () a) 0)))
|
||||
|
||||
(display 7)
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
((lambda ()
|
||||
(define local 1)
|
||||
(define (f_) (display local))
|
||||
(set! f f_)
|
||||
))
|
||||
(define (f_)
|
||||
(display local))
|
||||
(set! f f_)))
|
||||
|
||||
(f)
|
|
@ -1,12 +1,15 @@
|
|||
#lang scheme
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
(define (outer)
|
||||
(define x 1)
|
||||
|
||||
(define (middle)
|
||||
(define (inner) (displayln x))
|
||||
(define (inner)
|
||||
(displayln x))
|
||||
(displayln 2)
|
||||
inner)
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
(define x 2)
|
||||
|
||||
(define (show-x) (display x) (newline))
|
||||
(define (show-x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
(show-x)
|
||||
(set! x 3)
|
||||
|
@ -13,7 +15,9 @@
|
|||
(show-x)))
|
||||
|
||||
((lambda ()
|
||||
(define (show-x) (display x) (newline))
|
||||
(define (show-x)
|
||||
(display x)
|
||||
(newline))
|
||||
(define x 7)
|
||||
(show-x)
|
||||
(set! x 8)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
(define (outer)
|
||||
(define x 0)
|
||||
(define (y) (set! x 1))
|
||||
(define (y)
|
||||
(set! x 1))
|
||||
(y)
|
||||
(display x))
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
; https://github.com/munificent/craftinginterpreters/blob/master/test/closure/nested_closure.lox
|
||||
#lang scheme
|
||||
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
(define f #f)
|
||||
|
||||
|
|
|
@ -5,18 +5,29 @@
|
|||
(define do-print 3)
|
||||
(define add 4)
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
(define (vector x y)
|
||||
(define (add-to other)
|
||||
(vector (+ x (other get-x)) (+ y (other get-y))))
|
||||
|
||||
(lambda (message)
|
||||
(if (= message get-x) x
|
||||
(if (= message get-y) y
|
||||
(if (= message add) add-to
|
||||
(if (= message do-print) ((lambda () (displayln x) (displayln y) (newline)))
|
||||
((lambda () (displayln -99) 0))))))))
|
||||
(if (= message get-x)
|
||||
x
|
||||
(if (= message get-y)
|
||||
y
|
||||
(if (= message add)
|
||||
add-to
|
||||
(if (= message do-print)
|
||||
((lambda ()
|
||||
(displayln x)
|
||||
(displayln y)
|
||||
(newline)))
|
||||
((lambda ()
|
||||
(displayln -99)
|
||||
0))))))))
|
||||
|
||||
(define v-1-7 (vector 1 7))
|
||||
(displayln (v-1-7 get-x))
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
; https://github.com/munificent/craftinginterpreters/blob/master/test/closure/open_closure_in_function.lox
|
||||
|
||||
|
||||
((lambda ()
|
||||
(define local 1)
|
||||
(define (f) (display local))
|
||||
(define (f)
|
||||
(display local))
|
||||
(f)))
|
|
@ -12,5 +12,3 @@
|
|||
(set! f f_)))
|
||||
|
||||
(f)
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
(define f #f)
|
||||
((lambda ()
|
||||
(define a 1)
|
||||
(define (f_) (display a))
|
||||
(define (f_)
|
||||
(display a))
|
||||
(set! f f_)))
|
||||
|
||||
((lambda ()
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
(define x 2)
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
(define (gy y) x)
|
||||
(define (gx x) x)
|
||||
(define (gy y)
|
||||
x)
|
||||
(define (gx x)
|
||||
x)
|
||||
|
||||
(displayln (gx 7))
|
||||
(displayln (gy 7))
|
|
@ -1,8 +1,9 @@
|
|||
; https://github.com/munificent/craftinginterpreters/blob/master/test/closure/shadow_closure_with_local.lox
|
||||
; TODO: Forbid this https://discordapp.com/channels/571040468092321801/618895179343986688/925533402592079912
|
||||
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
((lambda ()
|
||||
(define foo 0)
|
||||
|
|
|
@ -3,23 +3,17 @@
|
|||
((lambda ()
|
||||
(define a 1)
|
||||
|
||||
|
||||
((lambda ()
|
||||
(define b 2)
|
||||
|
||||
(define (get-a) a)
|
||||
(define (get-a)
|
||||
a)
|
||||
|
||||
(set! closure get-a)
|
||||
|
||||
(if #f
|
||||
(lambda () b)
|
||||
0)
|
||||
(if #f (lambda () b) 0)))
|
||||
|
||||
))
|
||||
|
||||
(display (closure))
|
||||
|
||||
))
|
||||
(display (closure))))
|
||||
|
||||
(newline)
|
||||
(display (closure))
|
||||
(display (closure))
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
(define (outer)
|
||||
(define x 1)
|
||||
(define (inner) (display x))
|
||||
(define (inner)
|
||||
(display x))
|
||||
inner)
|
||||
|
||||
(define clousre (outer))
|
||||
(clousre)
|
||||
|
||||
|
|
|
@ -4,12 +4,14 @@
|
|||
(define (main)
|
||||
(define a 0)
|
||||
|
||||
(define (set) (set! a 1))
|
||||
(define (get) (display a) (newline))
|
||||
(define (set)
|
||||
(set! a 1))
|
||||
(define (get)
|
||||
(display a)
|
||||
(newline))
|
||||
|
||||
(set! globalSet set)
|
||||
(set! globalGet get)
|
||||
)
|
||||
(set! globalGet get))
|
||||
|
||||
(main)
|
||||
(globalGet)
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
#lang scheme
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
(define (curry2 f) (lambda (l) (lambda (r) (f l r))))
|
||||
(define (curry2 f)
|
||||
(lambda (l) (lambda (r) (f l r))))
|
||||
|
||||
(displayln (((curry2 +) 1) 2))
|
||||
|
|
|
@ -1,21 +1,28 @@
|
|||
#lang scheme
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
(define (my-or a b) (if a #t b)) ; Test was written before we had `or`
|
||||
(define (my-or a b)
|
||||
(if a #t b)) ; Test was written before we had `or`
|
||||
|
||||
|
||||
(define (fib-base? n) (my-or (= n 1) (= n 0)))
|
||||
(define (fib-base? n)
|
||||
(my-or (= n 1) (= n 0)))
|
||||
|
||||
(define (fib n)
|
||||
(if (fib-base? n) 1
|
||||
(+ (fib (- n 1)) (fib (- n 2)))))
|
||||
(if (fib-base? n) 1 (+ (fib (- n 1)) (fib (- n 2)))))
|
||||
|
||||
|
||||
(define (pfib n) (displayln n) (displayln (fib n)) (newline))
|
||||
(define (pfib n)
|
||||
(displayln n)
|
||||
(displayln (fib n))
|
||||
(newline))
|
||||
|
||||
(define (pfibs n)
|
||||
(if (= n (- 1)) 0 ; Hack
|
||||
((lambda () (pfib n) (pfibs (- n 1)))))) ; Hack
|
||||
(if (= n (- 1))
|
||||
0 ; Hack
|
||||
((lambda ()
|
||||
(pfib n)
|
||||
(pfibs (- n 1)))))) ; Hack
|
||||
|
||||
(pfibs 10)
|
|
@ -1,6 +1,8 @@
|
|||
#lang scheme
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
|
||||
(define add1 +)
|
||||
(displayln (add1 2 3))
|
||||
|
@ -8,5 +10,6 @@
|
|||
(define add2 (lambda (a b) (+ a b)))
|
||||
(displayln (add2 5 6))
|
||||
|
||||
(define (add3 a b) (+ a b))
|
||||
(define (add3 a b)
|
||||
(+ a b))
|
||||
(displayln (add3 5 9))
|
|
@ -1,18 +1,24 @@
|
|||
#lang scheme
|
||||
|
||||
(define (displayln x) (display x) (newline))
|
||||
(define (printbool x) (displayln (bool->int x)))
|
||||
(define (displayln x)
|
||||
(display x)
|
||||
(newline))
|
||||
(define (printbool x)
|
||||
(displayln (bool->int x)))
|
||||
|
||||
(define (true x y) x)
|
||||
(define (false x y) y)
|
||||
(define (and x y) (x y x))
|
||||
(define (or x y) (x x y))
|
||||
(define (not x) (x false true))
|
||||
(define (true x y)
|
||||
x)
|
||||
(define (false x y)
|
||||
y)
|
||||
(define (and x y)
|
||||
(x y x))
|
||||
(define (or x y)
|
||||
(x x y))
|
||||
(define (not x)
|
||||
(x false true))
|
||||
|
||||
(define (bool->int x)
|
||||
(if
|
||||
(equal? x true) 1
|
||||
(if (equal? x false) 0 (- 1))))
|
||||
(if (equal? x true) 1 (if (equal? x false) 0 (- 1))))
|
||||
|
||||
(printbool true)
|
||||
(printbool false)
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
#lang scheme
|
||||
|
||||
(define (multi) 1 2 3)
|
||||
(define (multi)
|
||||
1
|
||||
2
|
||||
3)
|
||||
|
||||
(display (multi))
|
|
@ -6,15 +6,14 @@
|
|||
(define (sqrt x)
|
||||
(define (sqrt-iter guess x)
|
||||
(define (good-enough? guess x)
|
||||
(define (square x) (* x x))
|
||||
(define (square x)
|
||||
(* x x))
|
||||
(< (abs (- (square guess) x)) 0.001))
|
||||
(define (improve guess x)
|
||||
(define (average x y)
|
||||
(/ (+ x y) 2))
|
||||
(average guess (/ x guess)))
|
||||
(if (good-enough? guess x)
|
||||
guess
|
||||
(sqrt-iter (improve guess x) x)))
|
||||
(if (good-enough? guess x) guess (sqrt-iter (improve guess x) x)))
|
||||
(sqrt-iter 1.0 x))
|
||||
|
||||
(display (sqrt 2))
|
|
@ -4,9 +4,7 @@
|
|||
; http://sarabander.github.io/sicp/html/1_002e1.xhtml#g_t1_002e1_002e7
|
||||
|
||||
(define (sqrt-iter guess x)
|
||||
(if (good-enough? guess x)
|
||||
guess
|
||||
(sqrt-iter (improve guess x) x)))
|
||||
(if (good-enough? guess x) guess (sqrt-iter (improve guess x) x)))
|
||||
|
||||
(define (improve guess x)
|
||||
(average guess (/ x guess)))
|
||||
|
@ -14,7 +12,8 @@
|
|||
(define (average x y)
|
||||
(/ (+ x y) 2))
|
||||
|
||||
(define (square x) (* x x))
|
||||
(define (square x)
|
||||
(* x x))
|
||||
|
||||
(define (good-enough? guess x)
|
||||
(< (abs (- (square guess) x)) 0.001))
|
||||
|
|
Loading…
Reference in New Issue