The real power of the function

A presentation at Meet.js in October 2019 in 15-001 Bialystok, Poland by Krzysztof Grzybek

Slide 1

Slide 1

The real power of the FUNCTION

Slide 2

Slide 2

Zdefiniuj funkcje: range, map, reverse i foreach uwzględniając poniższe ograniczenia tak, aby przedstawiony program działał poprawnie. ▪ ▪ ▪ Nie możesz używać tablic. Kwadratowe nawiasy [ ] i konstruktor Array są zabronione. Nie możesz używać obiektów. Nawiasy klamrowe { } użyte do tworzenia obiektu i używanie kropki . są zabronione Funkcje muszą być generyczne Nie musimy się ograniczać jedynie do 4 funkcji, możemy definiować funkcje pomocnicze. . 2

Slide 3

Slide 3

3

Slide 4

Slide 4

Zdefiniuj funkcje: range, map, reverse i foreach uwzględniając poniższe ograniczenia tak, aby program działał poprawnie. ▪ ▪ ▪ Nie możesz używać tablic. Kwadratowe nawiasy [ ] i konstruktor Array są zabronione. Nie możesz używać obiektów. Nawiasy klamrowe { } i używanie kropki . jest zabronione. Funkcje muszą być generyczne. . 4

Slide 5

Slide 5

Zdefiniuj funkcje: range, map, reverse i foreach uwzględniając poniższe ograniczenia tak, aby program działał poprawnie. ▪ ▪ ▪ ▪ Nie możesz używać tablic. Kwadratowe nawiasy [ ] i konstruktor Array są zabronione. Nie możesz używać obiektów. Nawiasy klamrowe { } i używanie kropki . jest zabronione. Funkcje muszą być generyczne. Nie możesz używać iterator statements, czyli: □ do…while □ for □ for…in □ for…of □ for await…of □ while . 5

Slide 6

Slide 6

List A B 6

Slide 7

Slide 7

List A B 7

Slide 8

Slide 8

List A B 8

Slide 9

Slide 9

List A B 9

Slide 10

Slide 10

List A B 10

Slide 11

Slide 11

List A List List B C D 11

Slide 12

Slide 12

List 1 List List 2 3 null 12

Slide 13

Slide 13

List 1 range(2, 3) 13

Slide 14

Slide 14

List 1 List 2 range(3, 3) 14

Slide 15

Slide 15

List 1 List List 2 3 range(4, 3) 15

Slide 16

Slide 16

List 1 List List 2 3 null 16

Slide 17

Slide 17

List 1 List List 2 3 null 17

Slide 18

Slide 18

List 1 map(list, fn) 18

Slide 19

Slide 19

List 1 List 4 map(list, fn) 19

Slide 20

Slide 20

List 1 List List 4 9 map(null, fn) 20

Slide 21

Slide 21

List 1 List List 4 9 null 21

Slide 22

Slide 22

List 1 List List 2 3 null 22

Slide 23

Slide 23

List 1 List List 2 3 null 23

Slide 24

Slide 24

24

Slide 25

Slide 25

25

Slide 26

Slide 26

26

Slide 27

Slide 27

27

Slide 28

Slide 28

28

Slide 29

Slide 29

LAMBDA CALCULUS 29

Slide 30

Slide 30

Rachunek lambda – system formalny używany do badania zagadnień związanych z podstawami matematyki jak rekurencja, definiowalność funkcji, obliczalność, podstawy matematyki np. definicja liczb naturalnych, wartości logicznych itd. Rachunek lambda został wprowadzony przez Alonzo Churcha i Stephena Cole’a Kleene’ego w 1930 roku. 30

Slide 31

Slide 31

λ-CALCULUS JAVASCRIPT 31

Slide 32

Slide 32

32

Slide 33

Slide 33

LAMBDA CALCULUS is turing-complete 33

Slide 34

Slide 34

34

Slide 35

Slide 35

Przydatne linki ▪ ▪ ▪ ▪ ▪ Edytor z przykładami Lambda calculus in JS @gtramontina Types and Programming Languages λ-calculus Interpreter napisany w JS Zadanie JS 35

Slide 36

Slide 36

Q&A

Slide 37

Slide 37

Dzięki! Kontakt: ▪ github@krzysztof-grzybek ▪ twitter@k__grzybek 37