905acacd07770c69c8b1aa975d5a83540fc62219
				
			
			
		
	SCL: Simple CAS Language
Syntax
As one would expect, you can evaluate simple infix expressions:
> 1 + 1
= 2
You can also define your own functions:
> f(x) = 2x
> f(2)
= 4
Symbolic algebra is done in the following manner:
> f(x) = e^x
> diff(f, x:sym, 2)
= e^x
SCL will dynamically decide on types, but you can state them explicitly as well:
> f(x:int) = 2x
> f(2.2)
! f(x:int): x must be of type int.
Variables can be defined, with several attributes:
> a = 1             // Interpret type automatically.
> b:int = 1         // Must be int.
> c:const:int = 1   // Constant: value can never change.
> x:sym             // Treated symbolicaly.
								Version v1.0
								
	Latest
							
						
					Languages
				
				
								
								
									C
								
								80.7%
							
						
							
								
								
									Yacc
								
								13.5%
							
						
							
								
								
									Makefile
								
								5.8%