-- FUNCTIONAL COMPUTATIONS :load General double 33 -123 123.12345 [] (((False))) False:[] 0:1:[] not True 10 + 10 (5 + 15) + (10 + 30) (False:[])++(True:[]) (False:[])++(True:[])++[]++[] (True:[])++(False:[])++(False:[])++(True:[]) True fibo 10 -- 1.0 $Float./ 3.0 -- BOOLEAN EQUALITY OVERLOADED 1 == 0 + 1 34 == 17 -- ListModule== eqDint [1,2] [coin,2] fibo 6 == fibo 6 -- BOOLEAN EQUALITY GENERIC (AD-HOC) 1 == 0 + 1 34 == 17 [1,2] == [coin,2] fibo 6 == fibo 6 -- NON-DETERMINISTIC COMPUTATIONS coin double coin coin + 7 (1 + 2) + coin coin + coin (coin + 0):(coin + 1):[] (0:1:2:4:[])++(coin:[]) -- HIGHER-ORDER COMPUTATIONS map not (False:True:[]) map (+ 2) (0:1:2:[]) map (+ coin) (0:1:2:[]) -- NARROWING COMPUTATIONS X:Y where X, Y free (X:[])++(Y:Z) where X, Y, Z free X++[] where X free X++(X++X) where X free -- SHARING IN COMPUTATION -- THE COMPUTATION SHOULD TAKE ABOUT THE SAME TIME AS fibo(20) coin + fibo 20