1 of 41

Visual

Functional

Programming

David Leoni

2 of 41

They teach math equations

in middle school

Why can’t we have

equations for algorithms ?

3 of 41

x

Reversing a list

4 of 41

x

rev(x)

Reversing a list

5 of 41

x

rev(x)

rev(rev((x))

Reversing a list

6 of 41

x

rev(x)

rev(rev((x))

Reversing a list

7 of 41

rev(rev(x)) = ?

x

rev(x)

rev(rev((x))

8 of 41

rev(rev(x)) = x

x

rev(x)

rev(rev((x))

9 of 41

x

Mirroring a list

10 of 41

x

mir(x)

Mirroring a list

11 of 41

x

mir(x)

rev(mir((x))

Mirroring a list

12 of 41

x

mir(x)

rev(mir((x))

Mirroring a list

13 of 41

rev(mir(x)) = ?

x

mir(x)

rev(mir((x))

14 of 41

rev(mir(x)) = mir(x)

x

mir(x)

rev(mir((x))

15 of 41

x

Duplicating elements

16 of 41

x

dup(x)

Duplicating elements

17 of 41

x

dup(x)

rev(dup((x))

Duplicating elements

18 of 41

x

dup(x)

rev(dup((x))

Duplicating elements

19 of 41

x

rev(x)

Duplicating elements

20 of 41

dup(rev((x))

x

rev(x)

Duplicating elements

21 of 41

dup(rev((x))

x

rev(x)

Duplicating elements

22 of 41

dup(rev(x)) = ?

dup(rev((x))

x

rev(x)

23 of 41

dup(rev(x)) = ?

dup(rev((x))

x

rev(x)

dup(x)

rev(dup((x))

24 of 41

dup(rev(x)) = rev(dup(x))

dup(rev((x))

x

rev(x)

dup(x)

rev(dup((x))

25 of 41

x

Removing duplicates

26 of 41

x

remdup(x)

Removing duplicates

27 of 41

x

Removing mirrors

remdup(x)

28 of 41

x

mir(x)

Removing mirrors

remdup(x)

29 of 41

x

mir(x)

remdup(mir((x))

Removing mirrors

remdup(x)

30 of 41

x

mir(x)

remdup(mir((x))

Removing mirrors

remdup(x)

31 of 41

x

mir(x)

remdup(mir((x))

remdup(mir(x)) = ?

remdup(x)

32 of 41

x

mir(x)

remdup(mir((x))

remdup(x)

remdup(mir(x)) = remdup(x)

33 of 41

x

Removing n duplicates

34 of 41

x

remdup(x)

Removing n duplicates

35 of 41

x

dup(x)

remdup(x)

Removing n duplicates

36 of 41

x

dup(x)

remdup(dupn((x))

remdup(x)

Removing n duplicates

37 of 41

x

dup(x)

remdup(x)

Removing n duplicates

remdup(dupn((x))

38 of 41

x

dup(x)

remdup(dupn(x)) = ?

remdup(x)

remdup(dupn((x))

39 of 41

x

dup(x)

remdup(dupn(x)) = remdup(x)

remdup(x)

remdup(dupn((x))

40 of 41

swap(swap(x)) = x

x

swap(x)

swap(swap(x))

WORK IN PROGRESS

41 of 41

WORK IN PROGRESS