Counter and Theme Toggle - Ml Typing CST Test
Loading…
Counter and Theme Toggle — Ml Code
Demonstrates a simple counter with theme toggling using ML variables and functions.
val count = ref 0
val isDark = ref false
fun updateUI () = (
print ("Counter: " ^ Int.toString(!count) ^ "\n");
print ("Theme: " ^ (if !isDark then "Dark" else "Light") ^ "\n")
)
fun increment () = (
count := !count + 1;
updateUI ()
)
fun decrement () = (
count := !count - 1;
updateUI ()
)
fun reset () = (
count := 0;
updateUI ()
)
fun toggleTheme () = (
isDark := not !isDark;
updateUI ()
)
(* Simulate actions *)
updateUI ();
increment ();
increment ();
toggleTheme ();
decrement ();
reset ();Ml Language Guide
ML (Meta Language) is a functional programming language known for its strong static type system, type inference, and pattern matching capabilities. It emphasizes immutability, recursion, and expressive type-safe programming, making it ideal for symbolic computation, theorem proving, and compiler development.
Primary Use Cases
- ▸Compiler and interpreter development
- ▸Theorem proving and formal verification
- ▸Symbolic computation
- ▸Algorithm prototyping
- ▸Academic research and teaching functional programming
Notable Features
- ▸Strong static typing with type inference
- ▸Pattern matching for control flow
- ▸Immutable data structures by default
- ▸First-class functions and higher-order functions
- ▸Module and functor system for abstraction
Origin & Creator
ML was developed in the early 1970s by Robin Milner and colleagues at the University of Edinburgh as a metalanguage for the LCF theorem prover.
Industrial Note
ML influenced many functional languages like OCaml, F#, and Haskell. It is still used in formal methods, compiler construction, and language research.