diff --git a/bracket/bracket.rkt b/bracket/bracket.rkt index 224325647..d81e23640 100644 --- a/bracket/bracket.rkt +++ b/bracket/bracket.rkt @@ -820,6 +820,7 @@ Variables Map Apply + If Append AppendStar Sin Cos Tan Sqrt @@ -850,6 +851,11 @@ (define Hold 'Hold) + (define (If t c a) + (if (atomic-expression? t) + (if t c a) + (construct 'If (list t c a)))) + (define (Plus . expressions) (simplify-plus expressions)) @@ -1331,7 +1337,12 @@ (check-equal? (Expand (Power (Plus a b) 2)) (Plus (Power a 2) (Times 2 a b) (Power b 2))) (check-equal? (Expand (Times a (Plus x y))) - (Plus (Times a x) (Times a y)))) + (Plus (Times a x) (Times a y))) + ; If + (check-equal? (If (Equal 1 1) 2 3) 2) + (check-equal? (If (Equal 1 2) 2 3) 3) + (check-equal? (If (Equal 1 x) 2 3) '(If (Equal 1 x) 2 3)) + ) #;(require (submod "." symbolic-application) diff --git a/bracket/tests/testing.rkt b/bracket/tests/testing.rkt index 75fb96545..883796f17 100644 --- a/bracket/tests/testing.rkt +++ b/bracket/tests/testing.rkt @@ -25,3 +25,9 @@ norm(a); norm(b); proj(a,b); line({x0,y0},{z,w}); +x:=0; +x=0; +If(x=0,1,2); +If(x=0,1,2); +If(x=42,1,2); +If(3+z,1,2) \ No newline at end of file