l k : • G r u n d p r i n z i p i e n i n P r o g r a m m i e r u n g • B e i s p i e l e m i t F P • D i e T h e s e : F u n k t i o n a l e S p r a c h e n l a s s e n u n s u n s e r e I d e e n b e s s e r a u s d r ü c k e n
l k : • W a s i s t E l e g a n t e r C o d e ? • W a s b e d e u t e t P r o g r a m m i e r e n ? • W a s i s t d i e E s s e n z d e s P r o g r a m m i e r e n s ?
e r s p r a c h e n s i n d e n t w i c k e l t w o r d e n u m m e n s c h l i c h e P r o b l e m e z u l ö s e n • S p i e g e l t s i c h u n s e r e m e n s c h l i c h e D e n k s t r u k t u r i n d e n P r o g r a m m i e r s p r a c h e n w i e d e r ?
n s M ü h e m o d u l a r e , l o c k e r v e r b u n d e n e , z u s a m m e n s e t z b a r e A b s t r a k t i o n e n z u b a u e n • W i r m a c h e n d a s , w e i l w i r u n s e r e P r o g r a m m e v e r s t e h e n w o l l e n
n s M ü h e m o d u l a r e , l o c k e r v e r b u n d e n e , z u s a m m e n s e t z b a r e A b s t r a k t i o n e n z u b a u e n • W i r m a c h e n d a s , w e i l w i r u n s e r e P r o g r a m m e v e r s t e h e n w o l l e n → E l e g a n t e r C o d e h e i ß t n u r ” E i n f a c h z u v e r s t e h e n ”
h e n C o d e , w e n n w i r n u r ü b e r e i n e h a n d v o l l S a c h e n d e n k e n m u s s . • W e n n d a s P r o b l e m z u g r o ß i s t , t e i l e n w i r e s u n d l ö s e n d i e T e i l e r e k u r s i v
h e n C o d e , w e n n w i r n u r ü b e r e i n e h a n d v o l l S a c h e n d e n k e n m u s s . • W e n n d a s P r o b l e m z u g r o ß i s t , t e i l e n w i r e s u n d l ö s e n d i e T e i l e r e k u r s i v • E s i s t d i e e i n z i g e S t r a t e g i e m i t d e r w i r P r o b l e m e l ö s e n k ö n n e n
o n i s t d i e E s s e n z d e r P r o g r a m m i e r u n g u n d v o n P r o b l e m l ö s u n g i n g e n e r e l l • W i e l e r n e n w i r ü b e r K o m p o s i t i o n ?
t h e o r i e • M a t h e m a t i k →F P • I n t e r a k t i o n e n w i c h t i g , n i c h t D e t a i l s • B e k a n n t a u s O O : m e t h o d s , m e s s a g e p a s s i n g , d a t a h i d i n g e t c
t h e o r i e • M a t h e m a t i k →F P • I n t e r a k t i o n e n w i c h t i g , n i c h t D e t a i l s • B e k a n n t a u s O O : m e t h o d s , m e s s a g e p a s s i n g , d a t a h i d i n g e t c • S t r u k t u r e n t s t e h t d u r c h K o m p o s i t i o n u n d a l s P r o g r a m m i e r e r s i n d w i r i n S t r u k t u r i n t e r e s s i e r t
r i e f ü r P r o g r a m m i e r e r 1 . O b j e k t e → T y p e n 2 . P f e i l e → F u n k t i o n e n 3 . K o m p o s i t i o n → F u n k t i o n e n k o m p o n i e r e n E i n e T h e o r i e d e r E s s e n z d e r P r o g r a m m i e r u n g !
i c h t i g e P r o g r a m m e ? 1 . G l o b a l S t a t e 2 . S i d e E f f e c t s 3 . E x c e p t i o n s 4 . P r o m i s e s 5 . M u l t i T h r e a d i n g 6 . e t c …
e r e n k o m p l e x e Z u s t ä n d e d u r c h ” B e r e c h n u n g s k o n t e x t e ” : 1 . O p t i o n a l : w o B e r e c h n u n g e n f e h l s c h l a g e n k ö n n e n 2 . L i s t s : w o m a n m e h r a l s e i n R e s u l t a t h a b e n k a n n 3 . I O : w o ” s i d e - e f f e c t s ” p a s s i e r e n k ö n n e n W i r r e d e n i m m e r n o c h ü b e r p u r e F u n k t i o n e n u n d a b s t r a h i e r e n ü b e r d e n K o n t e x t !
t e i n e A b b i l d u n g z w i s c h e n z w e i K a t e g o r i e n • W i r b e n u t z e n e s , u m i n a n d e r e n K o n t e x t e n z u a r b e i t e n • L ä s s t u n s e i n e ” n o r m a l e ” F u n k t i o n i n e i n e n n e u e n K o n t e x t s e t z e n
w i r k l i c h H a s k e l l u n d d i e K a t e g o r i e n t h e o r i e b e n u t z e n , u m L i s t e n u n d O p t i o n a l e a b z u b i l d e n ? … ? • A : N e i n , a b e r w i r k ö n n e n e t w a s d a r a u s l e r n e n
s e a u s d e m F u n k t o r • A b s t r a h i e r t E l e m e n t e u n d d e n K o n t e x t s e l b s t • W i r k ö n n e n p u r e F u n k t i o n e n u n d g a n z e P r o g r a m m e w i e ( e v e n . l e n g t h ) u n g e ä n d e r t i n u n t e r s c h i e d l i c h e n K o n t e x t e n a u s f ü h r e n
i n ” C o n t a i n e r ” d e m d e r I n h a l t e g a l i s t • E s i s t n u r w i c h t i g , d a s s m a n d e n I n h a l t m i t F u n k t i o n e n m a n i p u l i e r e n k a n n • I m U n t e r s c h i e d z u I n t e r f a c e s i n z . B . J a v a , i s t d e r F u n k t o r n i c h t a n d i e e x p l i z i t e n O b j e k t e g e b u n d e n
s s u n g • D e r e i n z i g e W e g , w i e w i r P r o b l e m e n l ö s e n k ö n n e n , i s t d i e T e i l u n g i n k l e i n e r e P r o b l e m e • K a t e g o r i e n t h e o r i e i s t d i e L e h r e v o n K o m p o s i t i o n . E s i s t e i n e a b s t r a k t e m a t h e m a t i s c h e T h e o r i e , a b e r e s g i b t i n P r o g r a m m i e r u n g v i e l e s i n n v o l l e A n w e n d u n g s f ä l l e • F u n k t o r i s t e i n B e i s p i e l a u s d e r K a t e g o r i e n t h e o r i e , d e r d e n K o n t e x t a b s t r a h i e r t u n d l ä s s t u n s a u f d i e K o m p o s i t i o n f o k u s s i e r e n
e n ? L u d v i g S u n d s t r ö m l u d v i g . s u n d s t r o e m @ i n n o q . c o m � + 4 9 1 5 1 6 1 1 8 1 2 7 0 � @ l u d v i g S u n d s t r m w w w . i n n o q . c o m i n n o Q D e u t s c h l a n d G m b H K r i s c h e r s t r . 1 0 0 4 0 7 8 9 M o n h e i m a . R h . G e r m a n y + 4 9 2 1 7 3 3 3 6 6 - 0 O h l a u e r S t r . 4 3 1 0 9 9 9 B e r l i n G e r m a n y L u d w i g s t r . 1 8 0 E 6 3 0 6 7 O f f e n b a c h G e r m a n y K r e u z s t r . 1 6 8 0 3 3 1 M ü n c h e n G e r m a n y c / o W e W o r k H e r m a n n s t r a s s e 1 3 2 0 0 9 5 H a m b u r g G e r m a n y i n n o Q S c h w e i z G m b H G e w e r b e s t r . 1 1 C H - 6 3 3 0 C h a m S w i t z e r l a n d + 4 1 4 1 7 4 3 0 1 1 1 A l b u l a s t r . 5 5 8 0 4 8 Z ü r i c h S w i t z e r l a n d