10.07.2015 Views

An Introduction to Functional Programming Through Lambda Calculus

An Introduction to Functional Programming Through Lambda Calculus

An Introduction to Functional Programming Through Lambda Calculus

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

- 233 -THEN [H,M,S]ELSElet M = M + 1inIF LESS M 60THEN [H,M,0]ELSElet H = H + 1inIF LESS H 24THEN [H,0,0]ELSE [0,0,0]iii) def TLESS [TR1,[H1,M1,S1]] [TR2,[H2,M2,S2]] =IF LESS H1 H2THEN TRUEELSEIF EQUAL H1 H2THENIF LESS M1 M2THEN TRUEELSEIF EQUAL M1 M2THENIF LESS S1 S2THEN TRUEELSE FALSEELSE FALSEELSE FALSErec TINSERT T [] = [T]or TINSERT T (T1::R) =IF TLESS T T1THEN T::T1::RELSE T1::(TINSERT T R)rec TSORT [] = []or TSORT (H::T) = TINSERT H (TSORT T)2)i) rec TCOMP TEMPTY TEMPTY = TRUEor TCOMP TEMPTY T = FALSEor TCOMP T TEMPTY = FALSEor TCOMP [V1,L1,R1] [V2,L2,R2] =IF EQUAL V1 V2THEN AND (TCOMP L1 L2) (TCOMP R1 R2)ELSE FALSEii) rec TFIND TEMPTY T = TRUEor TFIND T TEMPTY = FALSEor TFIND T1 T2 =IF TCOMP T1 T2THEN TRUEELSEIF LESS (ITEM T1) (ITEM T2)THEN TFIND T1 (LEFT T2)ELSE TFIND T1 (RIGHT T2)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!